Compare commits

...

6 Commits

Author SHA1 Message Date
mercury 6215836926 fix empty route rules for singbox 2024-10-23 03:01:10 +04:00
mercury 842d76261a update version 2024-10-23 02:45:17 +04:00
mercury 4c63ae669a improve selfupdate 2024-10-23 02:32:19 +04:00
mercury bba1ec9e17 improve selfupdate 2024-10-23 02:25:00 +04:00
mercury a798df0fd3 improve selfupdate 2024-10-23 02:20:16 +04:00
mercury d225e7c039 fix double import after update 2024-10-23 02:06:35 +04:00
4 changed files with 52 additions and 30 deletions
+42 -30
View File
@@ -1092,6 +1092,12 @@ class Bot
}
}
public function cleanQueue()
{
$r = $this->request('deleteWebhook', []);
$r = $this->request('getUpdates', ['offset' => -1]);
}
public function pinAdmin($pin, $unpin = false)
{
require __DIR__ . '/config.php';
@@ -1450,8 +1456,10 @@ class Bot
$this->update($this->input['chat'], $this->input['message_id'], implode("\n", $out));
$this->language = $this->getPacConf()['language'] ?: 'en';
$this->limit = $this->getPacConf()['limitpage'] ?: 5;
sleep(3);
$this->menu();
if (empty($file)) {
sleep(3);
$this->menu();
}
}
}
@@ -1787,11 +1795,18 @@ class Bot
public function sslip()
{
$c = $this->getPacConf();
if (empty($c['domain'])) {
require __DIR__ . '/config.php';
$p = $this->getPacConf();
$ip = getenv('IP');
$r = $this->send($c['admin'][0], "start $ip");
$this->input['chat'] = $c['admin'][0];
$this->input['message_id'] = $r['result']['message_id'];
if (empty($p['domain'])) {
$this->addDomain(str_replace('.', '-', $this->ip) . '.nip.io', 1);
$this->setSSL('letsencrypt');
}
$this->menu();
}
public function comment($text, $tag)
@@ -3848,7 +3863,7 @@ DNS-over-HTTPS with IP:
$cron = exec('pgrep -f cron.php');
$menu = [
'main' => [
'text' => 'v' . getenv('VER') . "\ncron: " . $this->i18n($cron ? 'on' : 'off') . ($cron ? '' : ' show <code>logs/php_error</code>'),
'text' => 'v' . getenv('VER') . ($this->dontshowcron ? '' : "\ncron: " . $this->i18n($cron ? 'on' : 'off') . ($cron ? '' : ' show <code>logs/php_error</code>')),
'data' => [
[
[
@@ -5028,6 +5043,14 @@ DNS-over-HTTPS with IP:
}
$json['routing']['rules'] = array_values($json['routing']['rules']);
}
if (!empty($json['route']['rules'])) {
foreach ($json['route']['rules'] as $k => $v) {
if (count($v) < 2) {
unset($json['route']['rules'][$k]);
}
}
$json['route']['rules'] = array_values($json['route']['rules']);
}
return json_encode($json);
}
@@ -5719,32 +5742,21 @@ DNS-over-HTTPS with IP:
public function selfUpdate()
{
require __DIR__ . '/config.php';
if (!empty($c['admin'])) {
$ip = getenv('IP');
$rm = explode(':', trim(file_get_contents('/update/reload_message')));
$m = file_get_contents('/update/message');
foreach ($c['admin'] as $k => $v) {
$r = $this->send($v, "start $ip");
$this->input['chat'] = $v;
$this->input['message_id'] = $r['result']['message_id'];
if (file_exists($this->update)) {
if (!empty($m)) {
$this->send($v, "<pre>$m</pre>", $v == $rm[0] ? $rm[1] : 0);
}
$r = $this->send($v, "import settings");
$this->input['chat'] = $v;
$this->input['message_id'] = $r['result']['message_id'];
$this->input['callback_id'] = $r['result']['message_id'];
if (empty($flag)) {
$this->importFile($this->update);
unlink($this->update);
$flag = true;
}
} else {
$this->menu();
}
$ip = getenv('IP');
$rm = explode(':', trim(file_get_contents('/update/reload_message')));
$m = file_get_contents('/update/message');
$this->input['chat'] = $rm[0];
$this->input['message_id'] = $rm[1];
$this->input['callback_id'] = $rm[1];
if (file_exists($this->update)) {
if (!empty($m)) {
$this->send($this->input['chat'], "<pre>$m</pre>", $rm[1]);
}
$r = $this->send($this->input['chat'], "import settings");
$this->input['message_id'] = $r['result']['message_id'];
$this->input['callback_id'] = $r['result']['message_id'];
$this->importFile($this->update);
unlink($this->update);
}
file_put_contents('/update/message', '');
file_put_contents('/update/reload_message', '');
+1
View File
@@ -10,6 +10,7 @@ if ($c['debug']) {
}
$bot = new Bot($c['key'], $i);
$bot->cleanQueue();
$bot->setwebhook();
$bot->selfUpdate();
$bot->adguardCheckPswd();
+1
View File
@@ -13,5 +13,6 @@ if ($c['debug']) {
$bot = new Bot($c['key'], $i);
$bot->restartTG();
$bot->dontshowcron = 1;
$bot->sslip();
$bot->cleanDocker();
+8
View File
@@ -1,3 +1,11 @@
23.10.2024 v1.80
- фикс пустых правил для singbox
23.10.2024 v1.79
- улучшение процесса обновления
23.10.2024 v1.78
- фикс двойного импорта при обновлении, когда админов больше одного
- рестарт бота сбрасывает очередь сообщений от телеграма
- при старте статус крона не показывается, т.к он еще не успел запуститься
23.10.2024 v1.77
- вывод статуса cron
- фикс с отправкой бэкапа при спецсимволах в названии бота