From 53bb09f41c707cd5d5480a553f5f109212cc6214 Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Thu, 26 Dec 2024 16:08:32 +0300 Subject: [PATCH] Feat: changed bot starting --- main.py | 10 ++++------ nwxraybot/__init__.py | 1 + nwxraybot/bot.py | 14 ++++++++++++++ nwxraybot/meta/router.py | 10 ++++++---- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/main.py b/main.py index b4c0cf4..8c2a805 100644 --- a/main.py +++ b/main.py @@ -3,9 +3,8 @@ import logging from sys import exit import uvloop -from aiogram import Bot, Dispatcher -from nwxraybot import Settings +from nwxraybot import NwXrayBot, Settings from nwxraybot.handlers import HelloHandler from nwxraybot.models import User @@ -21,7 +20,6 @@ if __name__ == "__main__": User.create_table() # Start bot - bot = Bot(token=config.bot_token.get_secret_value()) - dp = Dispatcher() - dp.include_routers(HelloHandler(bot)()) - uvloop.run(dp.start_polling(bot, skip_updates=True)) + bot = NwXrayBot(config.bot_token.get_secret_value()) + bot.include_routers(HelloHandler(bot)()) + uvloop.run(bot.start(skip_updates=True)) diff --git a/nwxraybot/__init__.py b/nwxraybot/__init__.py index c39c74f..667fdf5 100644 --- a/nwxraybot/__init__.py +++ b/nwxraybot/__init__.py @@ -1 +1,2 @@ +from nwxraybot.bot import NwXrayBot from nwxraybot.config import Settings diff --git a/nwxraybot/bot.py b/nwxraybot/bot.py index e69de29..6d558fa 100644 --- a/nwxraybot/bot.py +++ b/nwxraybot/bot.py @@ -0,0 +1,14 @@ +from aiogram import Bot, Dispatcher, Router + + +class NwXrayBot: + def __init__(self, token: str) -> None: + self.bot = Bot(token=token) + self.dp = Dispatcher() + + def include_routers(self, *routers: Router): + for router in routers: + self.dp.include_router(router) + + async def start(self, skip_updates: bool = False) -> None: + await self.dp.start_polling(self.bot, skip_updates=skip_updates) diff --git a/nwxraybot/meta/router.py b/nwxraybot/meta/router.py index 9db9f49..9220bcd 100644 --- a/nwxraybot/meta/router.py +++ b/nwxraybot/meta/router.py @@ -1,12 +1,14 @@ -from aiogram import Bot, Router +from aiogram import Router + +from nwxraybot import NwXrayBot class Handler: - bot: Bot + bot: NwXrayBot router: Router - def __init__(self, bot: Bot) -> None: - assert isinstance(bot, Bot) + def __init__(self, bot: NwXrayBot) -> None: + assert isinstance(bot, NwXrayBot) self.bot = bot self.router = Router()