60 lines
3.2 KiB
Python
60 lines
3.2 KiB
Python
# 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.timers.time 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)
|