Files
PrimoPearlBot/BotLibrary/analitics/start_info_out.py
2025-02-11 02:48:45 +07:00

60 lines
3.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BotLibrary/analitics/start_info_out.py
# Вывод данных бота в консоль для начальной проверки
# Логирование стартов бота в bot_start.log
from datetime import datetime
from colorama import Fore
from loguru import logger
from time import sleep
from ..configs import ProjectPath, default_encod
from BotLibrary.configs.settings import TimeVariable
from ..library.bots import BotInfo
# Настройка экспорта модулей и логирования
__all__ = ("bot_info_out",)
log_type = "Start_INFO"
# Функция для получения информации о боте и выводе ее в консоль и файл
def bot_info_out():
bot_time = f"Бот @{BotInfo.username} запущен в {datetime.now().strftime(TimeVariable.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(Fore.CYAN + bot_all_info)
# Записываем информацию в файл
try:
with open(ProjectPath.log_info, 'w', encoding=default_encod) as log_file:
log_file.write(f"{bot_time}{bot_all_info}")
# Создание файла bot_start.log
with open(ProjectPath.log_start, 'a', encoding=default_encod) 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)