Compare commits

...

13 Commits

Author SHA1 Message Date
mercury 1cf24407c0 nip.io button to quickly change domain 2024-10-30 22:39:55 +04:00
mercury d3470bd8ea update version 2024-10-27 01:53:55 +04:00
mercury 1fcddf49e3 fixup! fixup! fix warp update 2024-10-27 01:42:25 +04:00
mercury a0d9bada2b fixup! fix warp update 2024-10-27 01:32:13 +04:00
mercury 32109c4526 fix warp update 2024-10-27 01:12:29 +04:00
mercury ca37736cd5 fix menu rulesset with empty rules 2024-10-26 23:14:03 +04:00
mercury 1c4fff50d1 fix menu warp after update 2024-10-26 22:47:43 +04:00
mercury 6ffb4d0a79 update version 2024-10-26 22:41:07 +04:00
mercury 394062cbe0 fix warp off after update 2024-10-26 22:29:07 +04:00
mercury dd8897575f fix warp off after update 2024-10-26 22:18:36 +04:00
mercury 9ab05de320 fix update menu 2024-10-26 21:58:10 +04:00
legiz-ru 71f7db5bac update singbox 1.10.1 windows x64 (#26) 2024-10-26 19:47:15 +04:00
mercury 237da68f14 duplicate the rulesset list in the message 2024-10-26 14:44:06 +04:00
5 changed files with 65 additions and 18 deletions
+40 -16
View File
@@ -401,6 +401,9 @@ class Bot
case preg_match('~^/deldomain$~', $this->input['callback'], $m):
$this->delDomain();
break;
case preg_match('~^/addNipdomain$~', $this->input['callback'], $m):
$this->addNipdomain();
break;
case preg_match('~^/(?P<action>change|delete)(?P<typelist>\w+) (?P<arg>\d+)$~', $this->input['callback'], $m):
$this->listPacChange($m['typelist'], $m['action'], $m['arg']);
break;
@@ -1765,6 +1768,11 @@ class Bot
}
}
public function addNipdomain()
{
$this->addDomain(str_replace('.', '-', $this->ip) . '.nip.io');
}
public function addDomain($domain, $nomenu = false)
{
$domain = trim($domain);
@@ -3437,7 +3445,7 @@ DNS-over-HTTPS with IP:
'callback_data' => "/addCommunityFilter",
],
];
$data = array_merge($data, $this->listPac('includelist', $page, 'pacMenu'));
$data = array_merge($data, $this->listPac('includelist', $page, 'pacMenu')[0]);
$data[] = [
[
'text' => $this->i18n('back'),
@@ -3576,7 +3584,7 @@ DNS-over-HTTPS with IP:
{
$text[] = "Menu -> " . $this->i18n('xray') . ' -> ' . $this->i18n('routes') . ' -> block list';
$data = $this->listPac('blocklist', $page, 'xtlsblock');
[$data] = $this->listPac('blocklist', $page, 'xtlsblock');
$data[] = [
[
'text' => $this->i18n('back'),
@@ -3595,7 +3603,7 @@ DNS-over-HTTPS with IP:
{
$text[] = "Menu -> " . $this->i18n('xray') . ' -> ' . $this->i18n('routes') . ' -> warp list';
$data = $this->listPac('warplist', $page, 'xtlswarp');
[$data] = $this->listPac('warplist', $page, 'xtlswarp');
$data[] = [
[
'text' => $this->i18n('back'),
@@ -3614,7 +3622,7 @@ DNS-over-HTTPS with IP:
{
$_SESSION['proxylistentry'] = 1;
$text[] = "Menu -> " . $this->i18n('xray') . ' -> ' . $this->i18n('routes') . ' -> proxy list';
$data = $this->listPac('includelist', $page, 'xtlsproxy');
[$data] = $this->listPac('includelist', $page, 'xtlsproxy');
$data[] = [
[
'text' => $this->i18n('back'),
@@ -3649,7 +3657,7 @@ DNS-over-HTTPS with IP:
{
$text[] = "Menu -> " . $this->i18n('xray') . ' -> ' . $this->i18n('routes') . ' -> package list';
$data = $this->listPac('packagelist', $page, 'xtlsapp');
[$data] = $this->listPac('packagelist', $page, 'xtlsapp');
$p = $this->getPacConf();
$data[] = [
[
@@ -3675,7 +3683,7 @@ DNS-over-HTTPS with IP:
{
$text[] = "Menu -> " . $this->i18n('xray') . ' -> ' . $this->i18n('routes') . ' -> process list';
$data = $this->listPac('processlist', $page, 'xtlsprocess');
[$data] = $this->listPac('processlist', $page, 'xtlsprocess');
$p = $this->getPacConf();
$data[] = [
[
@@ -3701,7 +3709,8 @@ DNS-over-HTTPS with IP:
{
$text[] = "Menu -> " . $this->i18n('xray') . ' -> ' . $this->i18n('routes') . ' -> rulesset list';
$data = $this->listPac('rulessetlist', $page, 'xtlsrulesset', 1);
[$data, $tmp] = $this->listPac('rulessetlist', $page, 'xtlsrulesset', 1);
$text = array_merge($text, $tmp ?: []);
$data[] = [
[
'text' => $this->i18n('back'),
@@ -3732,6 +3741,9 @@ DNS-over-HTTPS with IP:
$domains = array_slice($domains, $page * $this->limit, $this->limit, true);
$i = 0;
foreach ($domains as $k => $v) {
if ($type == 'rulessetlist') {
$text[] = "<blockquote><code>$k</code></blockquote>";
}
$data[] = [
[
'text' => $this->i18n($v ? 'on' : 'off') . ' ' . ($basename ? basename($k) . ' ' : '') . (in_array($type, ['rulessetlist', 'packagelist', 'processlist']) ? $k : idn_to_utf8($k)),
@@ -3778,7 +3790,7 @@ DNS-over-HTTPS with IP:
],
];
}
return $data;
return [$data, $text];
}
public function listPacChange($type, $action, $key)
@@ -4688,12 +4700,13 @@ DNS-over-HTTPS with IP:
public function offWarp()
{
$p = $this->getPacConf();
if (empty($p['warpoff'])) {
$this->ssh('warp-cli --accept-tos registration delete', 'wp');
$this->ssh('pkill warp-svc', 'wp');
$p['warpoff'] = 1;
} else {
$p = $this->getPacConf();
if (!empty($this->selfupdate)) {
if (!empty($p['warpoff'])) {
$this->ssh('warp-cli --accept-tos registration delete 2>&1', 'wp');
$this->ssh('pkill warp-svc', 'wp');
}
} elseif (!empty($p['warpoff'])) {
$this->ssh('warp-svc > /dev/null 2>&1 &', 'wp');
sleep(3);
if (empty($this->ssh('[ -f "/var/lib/cloudflare-warp/conf.json" ] && echo 1', 'wp'))) {
@@ -4705,9 +4718,15 @@ DNS-over-HTTPS with IP:
$this->send($this->input['chat'], 'Proxy mode: ' . $this->ssh('warp-cli --accept-tos mode proxy 2>&1', 'wp'));
$this->send($this->input['chat'], 'Connect: ' . $this->ssh('warp-cli --accept-tos connect 2>&1', 'wp'));
unset($p['warpoff']);
} else {
$this->send($this->input['chat'], 'Registration delete: ' . $this->ssh('warp-cli --accept-tos registration delete 2>&1', 'wp'));
$this->ssh('pkill warp-svc', 'wp');
$p['warpoff'] = 1;
}
$this->setPacConf($p);
$this->warp();
if (empty($this->selfupdate)) {
$this->warp();
}
}
public function warp()
@@ -5543,7 +5562,7 @@ DNS-over-HTTPS with IP:
];
exec("git -C / branch -vv", $mm);
return [
'text' => '<pre><code class="language-shell">' . implode("\n", $mm) . '</code></pre>',
'text' => '<pre><code class="language-shell">' . htmlentities(implode("\n", $mm)) . '</code></pre>',
'data' => $data,
];
}
@@ -5587,6 +5606,10 @@ DNS-over-HTTPS with IP:
'text' => $this->i18n('+ subdomain'),
'callback_data' => '/addSubdomain',
],
[
'text' => $this->i18n('nip.io'),
'callback_data' => '/addNipdomain',
],
],
];
if ($conf['domain']) {
@@ -5833,6 +5856,7 @@ DNS-over-HTTPS with IP:
$this->input['message_id'] = $rm[1];
$this->input['callback_id'] = $rm[1];
if (file_exists($this->update)) {
$this->selfupdate = true;
if (!empty($m)) {
$this->send($this->input['chat'], "<pre>$m</pre>", $rm[1]);
}
+10 -2
View File
@@ -282,8 +282,8 @@ $i = [
'ru' => 'пагинация',
],
'exchange' => [
'en' => 'open ip',
'ru' => 'откр айпи',
'en' => 'client isolation',
'ru' => 'изоляция клиентов',
],
'ocserv' => [
'en' => 'OpenConnect',
@@ -345,4 +345,12 @@ $i = [
'en' => 'expose-iroutes',
'ru' => 'изоляция клиентов',
],
'fill allowed clients' => [
'en' => 'fill allowed clients',
'ru' => 'заполнить белый список клиентов',
],
'delete allowed clients' => [
'en' => 'delete allowed clients',
'ru' => 'очистить белый список клиентов',
],
];
+3
View File
@@ -14,6 +14,9 @@ $bot = new Bot($c['key'], $i);
$bot->selfUpdate();
$bot->restartTG();
if (!empty($bot->selfupdate)) {
$bot->offWarp();
}
$bot->dontshowcron = 1;
$bot->sslip();
$bot->cleanDocker();
Binary file not shown.
+12
View File
@@ -1,3 +1,15 @@
30.10.2024 v1.91
- кнопка nip.io для быстрой смены домена
27.10.2024 v1.90
- очередной фикс запуска warp после апдейта
- правки фраз меню
26.10.2024 v1.89
- xray rulesset: фикс меню при отсутствующих правилах
26.10.2024 v1.88
- xray rulesset: дублирование кнопок текстом
- singbox 1.10.1 для windows x64
- фикс с включенным warp после апдейта
- фикс с нерабочей кнопкой апдейта, обновится можно через /autoupdate если поймали не рабочую кнопку апдейта
25.10.2024 v1.87
- xray: в routes добавлен раздел proxy - зеркало раздела Pac
25.10.2024 v1.86