From dfbcd67f83d65effcc6d37f3f34d22b3e02288e4 Mon Sep 17 00:00:00 2001 From: mercury Date: Mon, 4 Nov 2024 19:23:15 +0400 Subject: [PATCH] restart button --- app/bot.php | 21 +++++++++++++++++++++ app/i18n.php | 4 ++++ update/update.sh | 21 ++++++++++++--------- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/app/bot.php b/app/bot.php index 3d7fa07..000b9f8 100644 --- a/app/bot.php +++ b/app/bot.php @@ -199,6 +199,9 @@ class Bot case preg_match('~^/applyupdatebot$~', $this->input['callback'], $m): $this->applyupdatebot(); break; + case preg_match('~^/restart$~', $this->input['callback'], $m): + $this->restart(); + break; case preg_match('~^/branches$~', $this->input['callback'], $m): $this->branches(); break; @@ -5693,6 +5696,20 @@ DNS-over-HTTPS with IP: $this->delete($this->input['from'], $this->input['message_id']); } + public function restart() + { + $r = $this->send($this->input['from'], 'restart...'); + file_put_contents('/update/reload_message', "{$this->input['from']}:{$r['result']['message_id']}"); + file_put_contents('/update/key', $this->key); + file_put_contents('/update/curl', json_encode([ + 'chat_id' => $this->input['chat'], + 'message_id' => $r['result']['message_id'], + 'text' => '~t~' + ], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)); + file_put_contents('/update/pipe', '2'); + $this->delete($this->input['from'], $this->input['message_id']); + } + public function configMenu() { exec('git -C / fetch'); @@ -5840,6 +5857,10 @@ DNS-over-HTTPS with IP: 'text' => $this->i18n(exec('git -C / rev-list --count HEAD..@{u}') ? 'have updates' : 'no updates'), 'callback_data' => "/menu update", ], + [ + 'text' => $this->i18n('restart'), + 'callback_data' => "/restart", + ], ]; $data[] = [ [ diff --git a/app/i18n.php b/app/i18n.php index 2e077f1..facacf6 100644 --- a/app/i18n.php +++ b/app/i18n.php @@ -369,4 +369,8 @@ $i = [ 'en' => 'copy', 'ru' => 'копировать', ], + 'restart' => [ + 'en' => 'restart', + 'ru' => 'перезагрузка', + ], ]; diff --git a/update/update.sh b/update/update.sh index fd7bf3b..3b85a2f 100755 --- a/update/update.sh +++ b/update/update.sh @@ -12,17 +12,20 @@ do key=$(cat $pwd/update/key) curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "останавливаю бота"/')" docker compose down --remove-orphans - curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "очищаю директорию"/')" - git reset --hard && git clean -fd - curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "скачиваю обновление"/')" - git fetch - if [[ -n "$branch" ]] + if [[ "$cmd" == 1]] then - curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "меняю ветку"/')" - git checkout -t origin/$branch || git checkout $branch + curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "очищаю директорию"/')" + git reset --hard && git clean -fd + curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "скачиваю обновление"/')" + git fetch + if [[ -n "$branch" ]] + then + curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "меняю ветку"/')" + git checkout -t origin/$branch || git checkout $branch + fi + curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "применяю обновления"/')" + git pull > ./update/message fi - curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "применяю обновления"/')" - git pull > ./update/message curl -H "Content-Type: application/json" -X POST https://api.telegram.org/bot$key/editMessageText -d "$(cat $pwd/update/curl | sed 's/"text":"~t~"/"text": "запускаю бота"/')" IP=$(curl ipinfo.io/ip) VER=$(git describe --tags) docker compose --env-file ./.env --env-file ./override.env up -d --force-recreate bash $pwd/update/update.sh &