41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
from aiogram import Bot, Dispatcher
|
|
from config import Config
|
|
from models.state import BotState
|
|
from addons.manager import AddonManager
|
|
|
|
|
|
class TelegramBot:
|
|
def __init__(self):
|
|
self.bot = Bot(token=Config.API_TOKEN)
|
|
self.dp = Dispatcher()
|
|
self.state = BotState()
|
|
self.addons = AddonManager(self.dp, self.state, self.bot)
|
|
|
|
def setup_handlers(self):
|
|
"""Регистрация всех обработчиков"""
|
|
from handlers import admin, schedule # , media, common
|
|
|
|
# Регистрируем обработчики из разных модулей
|
|
admin.register_handlers(self.dp, self.state, self.bot)
|
|
# schedule.register_handlers(self.dp, self.state)
|
|
# media.register_handlers(self.dp, self.state, self.bot)
|
|
# common.register_handlers(self.dp, self.state, self.bot)
|
|
|
|
# add addons
|
|
self.addons.load("download_mp3_to_youtube")
|
|
self.addons.load("id")
|
|
self.addons.load("send_message")
|
|
self.addons.load("poll")
|
|
self.addons.load("hello")
|
|
# self.addons.load("draw")
|
|
self.addons.load("gpt")
|
|
self.addons.load("rule34")
|
|
# self.addons.load("todo")
|
|
self.addons.load("miniapps")
|
|
self.addons.load("x_days_to")
|
|
|
|
async def start(self):
|
|
"""Запуск бота"""
|
|
self.setup_handlers()
|
|
await self.dp.start_polling(self.bot)
|