From de37adbdbb9baad8b61dfac666e59cadd9621fd4 Mon Sep 17 00:00:00 2001 From: Verum Date: Sun, 16 Mar 2025 02:10:19 +0700 Subject: [PATCH] =?UTF-8?q?2.1=20=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=B2=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8E,=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B5=D0=B4=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=B0?= =?UTF-8?q?=D1=80=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BotLibrary/system/bots.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/BotLibrary/system/bots.py b/BotLibrary/system/bots.py index 167a1e6..a377419 100644 --- a/BotLibrary/system/bots.py +++ b/BotLibrary/system/bots.py @@ -1,5 +1,5 @@ # BotLibrary/system/bots.py -# Создание и настройка бота в одном файле +# Создание и настройка бота, диспатчера и основных инструментов from aiogram import Dispatcher, Bot, F from aiogram.client.default import DefaultBotProperties @@ -8,7 +8,6 @@ from aiogram.utils.keyboard import InlineKeyboardBuilder, ReplyKeyboardBuilder from ..timer import get_host_time, get_city_time from ProjectsFiles import bot_token, BotVar - # Создание строителей кнопок rkb = ReplyKeyboardBuilder() ikb = InlineKeyboardBuilder() @@ -16,10 +15,11 @@ ikb = InlineKeyboardBuilder() # Настройка параметров диспатчера dp = Dispatcher() dp["started_at"] = get_host_time() -dp["started_at_msk"] = get_city_time() +dp["started_at_city"] = get_city_time() dp["is_active"] = True # Флаг активности бота dp["logs"] = [] dp["users"] = {} +dp["admins"] = {} dp["sessions"] = {} dp["task_queue"] = [] dp["configs"] = {"max_connections": 100, "retry_interval": 5, "time_format": BotVar.time_format} @@ -29,10 +29,11 @@ dp["state"] = {} dp["scheduler"] = [] dp["handlers"] = {"on_message": [], "on_error": []} dp["storage"] = {} -dp["database"] = None +dp["database"] = "SQLite3" -# Настройки для бота -bot_properties = DefaultBotProperties( + +# Создание экземпляра бота и его настройка +bot = Bot(token=bot_token, default=DefaultBotProperties( parse_mode=BotVar.parse_mode, disable_notification=BotVar.disable_notification, protect_content=BotVar.protect_content, @@ -42,15 +43,13 @@ bot_properties = DefaultBotProperties( link_preview_prefer_large_media=BotVar.link_preview_prefer_large_media, link_preview_show_above_text=BotVar.link_preview_show_above_text, show_caption_above_media=BotVar.show_caption_above_media, -) - -# Создание экземпляра бота -bot = Bot(token=bot_token, default=bot_properties) +)) # Фильтры для различных типов сообщений F_Media = F.photo | F.files | F.video | F.animation | F.voice | F.video_note F_All = F.text | F.photo | F.files | F.video | F.animation | F.voice | F.video_note + # Класс для хранения данных о боте class BotInfo: """ @@ -94,12 +93,15 @@ class BotInfo: cls.can_join_groups = getattr(bot_info, 'can_join_groups', False) cls.can_read_all_group_messages = getattr(bot_info, 'can_read_all_group_messages', False) -async def bot_get_info() -> dict: + +# Функция получения информации о боте +async def bot_get_info(bots: Bot = bot) -> dict: """ Получает информацию о боте и обновляет данные в классе BotInfo. + :param bots: Получение объекта бота в функцию. :return: Словарь с данными о боте. """ - bot_info_data = await bot.get_me() + bot_info_data = await bots.get_me() BotInfo.update(bot_info_data) return { 'bot_info': bot_info_data,