From b0b0f04a9b8c2bdbbb16f91eb97e7df3a4763a2a Mon Sep 17 00:00:00 2001 From: profitroll Date: Thu, 5 Jan 2023 13:08:08 +0100 Subject: [PATCH] Added down time messages --- holochecker.py | 13 +++++++++++-- locale/uk.json | 4 +++- modules/commands/reboot.py | 9 ++++++--- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/holochecker.py b/holochecker.py index 63bf2fc..74b68f9 100644 --- a/holochecker.py +++ b/holochecker.py @@ -54,7 +54,16 @@ if __name__ == "__main__": app.start() try: - app.send_message(configGet("owner"), f"Starting up with pid `{pid}`") + if path.exists(path.join(configGet("cache", "locations"), "shutdown_time")): + downtime = relativedelta(datetime.now(), datetime.fromtimestamp(jsonLoad(path.join(configGet("cache", "locations"), "shutdown_time")))) + if downtime.days >= 1: + app.send_message(configGet("owner"), locale("startup_downtime_days", "message").format(pid, downtime.days)) + elif downtime.hours >= 1: + app.send_message(configGet("owner"), locale("startup_downtime_hours", "message").format(pid, downtime.hours)) + else: + app.send_message(configGet("owner"), locale("startup_downtime_minutes", "message").format(pid, downtime.minutes)) + else: + app.send_message(configGet("owner"), locale("startup", "message").format(pid)) except bad_request_400.PeerIdInvalid: logWrite(f"Could not send startup message to bot owner. Perhaps user has not started the bot yet.") @@ -63,7 +72,7 @@ if __name__ == "__main__": idle() try: - app.send_message(configGet("owner"), f"Shutting with pid `{pid}`") + app.send_message(configGet("owner"), locale("shutdown", "message").format(pid)) except bad_request_400.PeerIdInvalid: logWrite(f"Could not send shutdown message to bot owner. Perhaps user has not started the bot yet.") diff --git a/locale/uk.json b/locale/uk.json index ab8091d..3ffe249 100644 --- a/locale/uk.json +++ b/locale/uk.json @@ -38,7 +38,9 @@ "sponsor_got": "Отримано форму на спонсорство від `{0}`\n\nІм'я тг: `{1}`\nЮзернейм: @{2}\n\n**Дані форми:**\n{3}", "shutdown": "Вимкнення бота з підом `{0}`", "startup": "Запуск бота з підом `{0}`", - "startup_downtime": "Запуск бота з підом `{0}` (лежав {1})", + "startup_downtime_minutes": "Запуск бота з підом `{0}` (лежав {1} хв.)", + "startup_downtime_hours": "Запуск бота з підом `{0}` (лежав {1} год.)", + "startup_downtime_days": "Запуск бота з підом `{0}` (лежав {1} дн.)", "approved": "Вітаємо! Твою анкету переглянули та підтвердили твоє право на вступ. Скористайся кнопкою під повідомленням щоб вступити до нашої лампової спільноти!", "approved_joined": "Вітаємо! Твою анкету переглянули та підтвердили її правильність. Дякуємо за витрачений на заповнення час та гарного дня!", "read_rules": "Будь ласка, прочитай ці правила перш ніж натискати на кнопку та приєднуватись до чату.", diff --git a/modules/commands/reboot.py b/modules/commands/reboot.py index 8005a1a..74834aa 100644 --- a/modules/commands/reboot.py +++ b/modules/commands/reboot.py @@ -1,21 +1,24 @@ from app import app -from os import getpid +from os import getpid, makedirs, path from sys import exit +from time import time from pyrogram import filters from pyrogram.types import Message from pyrogram.client import Client -from modules.utils import locale, logWrite, should_quote +from modules.utils import configGet, jsonSave, locale, logWrite, should_quote from modules.scheduled import scheduler from modules import custom_filters pid = getpid() -# Shutdown command ============================================================================================================= +# Reboot command =============================================================================================================== @app.on_message(custom_filters.enabled_general & ~filters.scheduled & filters.private & filters.command(["kill", "die", "reboot"], prefixes=["/"]) & custom_filters.admin) async def cmd_kill(app: Client, msg: Message): logWrite(f"Shutting down bot with pid {pid}") await msg.reply_text(locale("shutdown", "message", locale=msg.from_user).format(pid), quote=should_quote(msg)) scheduler.shutdown() + makedirs(configGet("cache", "locations"), exist_ok=True) + jsonSave({"timestamp": time()}, path.join(configGet("cache", "locations"), "shutdown_time")) exit() # ============================================================================================================================== \ No newline at end of file