From 043584c730dcbd2a2e97cb3cce85dabb754a1106 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Fri, 12 Aug 2022 02:00:59 +0300 Subject: [PATCH] Moved handlers to telegram/commands package --- telegram/__init__.py | 3 +-- telegram/commands/__init__.py | 24 ++++++++++++++++++++++++ telegram/commands/test.py | 6 ++++++ telegram/handlers.py | 11 ----------- 4 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 telegram/commands/__init__.py create mode 100644 telegram/commands/test.py delete mode 100644 telegram/handlers.py diff --git a/telegram/__init__.py b/telegram/__init__.py index 28194e6..0464acc 100644 --- a/telegram/__init__.py +++ b/telegram/__init__.py @@ -1,10 +1,9 @@ from aiogram import Bot, Dispatcher -from aiogram.dispatcher.webhook import SendMessage from aiogram.contrib.middlewares.logging import LoggingMiddleware from config import Config -from .handlers import register_handlers +from .commands import register_handlers config = Config() diff --git a/telegram/commands/__init__.py b/telegram/commands/__init__.py new file mode 100644 index 0000000..8bbd6a8 --- /dev/null +++ b/telegram/commands/__init__.py @@ -0,0 +1,24 @@ +from dataclasses import dataclass +import typing + +from aiogram import Dispatcher +from .test import telegram_test + + +@dataclass +class Handler: + """ + Dataclass of handlers with help string. + """ + function: typing.Callable + help_string: str + + +handlers: dict[str, Handler] = { + 'test': Handler(telegram_test, 'Отвечает "passed"') +} + + +def register_handlers(dispatcher: Dispatcher): + for command, handler in handlers.items(): + dispatcher.register_message_handler(handler, commands=[command]) diff --git a/telegram/commands/test.py b/telegram/commands/test.py new file mode 100644 index 0000000..80a4919 --- /dev/null +++ b/telegram/commands/test.py @@ -0,0 +1,6 @@ +from aiogram.types import Message +from aiogram.dispatcher.webhook import SendMessage + + +async def telegram_test(message: Message) -> SendMessage: + return SendMessage(message.chat.id, 'passed!') diff --git a/telegram/handlers.py b/telegram/handlers.py deleted file mode 100644 index e58350d..0000000 --- a/telegram/handlers.py +++ /dev/null @@ -1,11 +0,0 @@ -from aiogram import Dispatcher -from aiogram.dispatcher.webhook import SendMessage -from aiogram.types import Message - - -async def telegram_test(message: Message) -> SendMessage: - return SendMessage(message.chat.id, 'passed') - - -def register_handlers(dispatcher: Dispatcher): - dispatcher.register_message_handler(telegram_test, commands=['test'])