Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1cf24407c0 | |||
| d3470bd8ea | |||
| 1fcddf49e3 | |||
| a0d9bada2b | |||
| 32109c4526 | |||
| ca37736cd5 | |||
| 1c4fff50d1 | |||
| 6ffb4d0a79 | |||
| 394062cbe0 | |||
| dd8897575f | |||
| 9ab05de320 | |||
| 71f7db5bac | |||
| 237da68f14 |
+40
-16
@@ -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
@@ -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' => 'очистить белый список клиентов',
|
||||
],
|
||||
];
|
||||
|
||||
@@ -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.
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user