From afb549d0d10a5e8b932bdd7b2dd32e5c05b5f568 Mon Sep 17 00:00:00 2001 From: Whyverum Date: Wed, 18 Dec 2024 07:24:57 +0700 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=B2=D0=BE=D0=B4=20=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D1=80=D1=82=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=B8=D0=BD=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B8=20=D0=BE=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BotLibrary/analitics/start_info_out.py | 58 ++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 BotLibrary/analitics/start_info_out.py diff --git a/BotLibrary/analitics/start_info_out.py b/BotLibrary/analitics/start_info_out.py new file mode 100644 index 0000000..d2e782e --- /dev/null +++ b/BotLibrary/analitics/start_info_out.py @@ -0,0 +1,58 @@ +# BotLibrary/analitics/start_info_out.py +# Вывод данных бота в консоль для начальной проверки +# Логирование стартов бота в bot_start.log + +from datetime import datetime +from time import sleep +from loguru import logger + +from config import ImportantPath, BotVariables +from ..library.bots import BotInfo +from ..library.decorator import TextDecorator + +# Настройка экспорта модулей и логирования +__all__ = ("bot_info_out",) +log_type = "Start_INFO" + + +# Функция для получения информации о боте и выводе ее в консоль и файл +def bot_info_out(): + bot_time = f"Бот @{BotInfo.username} запущен в {datetime.now().strftime(BotVariables.time_format)}\n" + bot_name = f"Основное имя: {BotInfo.first_name}\n" + bot_postname = f" Доп. имя: {BotInfo.last_name}\n" + bot_username = f" Юзернейм: @{BotInfo.username}\n" + bot_id = f" ID: {BotInfo.id}\n" + bot_language = f" Языковой код: {BotInfo.language_code}\n" + bot_can_join_groups = f" Может ли вступать в группы: {BotInfo.can_join_groups}\n" + bot_can_read_all_group_messages = f" Чтение всех сообщений: {BotInfo.can_read_all_group_messages}\n" + bot_is_premium = f" Является премиум-ботом: {BotInfo.is_premium}\n" + bot_added_to_attachment_menu = f" Добавлен в меню вложений: {BotInfo.added_to_attachment_menu}\n" + bot_supports_inline_queries = f" Поддерживает инлайн-запросы: {BotInfo.supports_inline_queries}\n" + bot_can_connect_to_business = f" Подключение к бизнес-аккаунтам: {BotInfo.can_connect_to_business}\n" + bot_has_main_web_app = f" Основное веб-приложение: {BotInfo.has_main_web_app}\n" + + # Формируем полный текст с выводом информации о боте + bot_all_info = (f"{bot_name} {bot_postname} {bot_username} {bot_id} {bot_language} " + f"{bot_can_join_groups} {bot_can_read_all_group_messages} {bot_is_premium} " + f"{bot_added_to_attachment_menu} {bot_supports_inline_queries} {bot_can_connect_to_business} " + f"{bot_has_main_web_app}") + + # Печатаем все данные в консоль с задержкой в 1 секунду + sleep(1) + print(TextDecorator.BLUE, bot_all_info, TextDecorator.RESET_DECORATOR) + + # Записываем информацию в файл + try: + with open(ImportantPath.log_info, 'w', encoding=BotVariables.encoding) as log_file: + log_file.write(f"{bot_time}{bot_all_info}") + + # Создание файла bot_start.log + with open(ImportantPath.log_start, 'a', encoding=BotVariables.encoding) as log_start_file: + log_start_file.write(f"{bot_time}\n") + return bot_all_info + + # Проверка на ошибку и ее логирование + except Exception as e: + text_error = f"Ошибка при получении ID пользователя: {e}" + logger.bind(log_type="INFO", user=log_type).error(text_error) + return text_error