некоторого класса?
Чисто условно, скажем
class BasicCommands(BasicGroupHandler):
async def start_command(self, message: Message...):
await message.answer("...")
async def help_command(...):
...
Ну и на методы какой-нибудь декоратор тоже, чтоб настроить на какую команду хендлеру срабатывать и т.д.
А в атрибуты такого класса бы указать прочие параметры, например тип чата и другое...
Даю добро
Какую проблему ты пытаешься решить таким образом?
можно но лишнее
1) избежать диспетчера в глобальной зоне видимости, (а по-другому в разных файлах хендлеры с декоратором диспетчера вроде как не получается) 2) группировать удобным образом хендлеры как на сообщения, так и на коллбеки вместе. 3) Нахуй CTRL+C, CTRL+V в dp.register_message_handler(...)
Первые два пункта решены в шаблоне Тишки Третий пункт — хз, там не ctrl+c, ctrl+v
Никто не мешает одинаковые фильтры сложить в словарик и применять как **фильтрс или оформить функцией
Уже лучше, но будет хрень с тем, что придётся импортировать модуль с функциями-хендлерами, в котором помимо них прописан словарик с параметрами... Как вариант конечно, но проблема с пачкой dp.register никуда не уходит.
Ну не в setup же словарик с параметрами писать
Какой сетап, какой словарик
Не надо шарить этот словарь вообще везде. Группируй хэндлеры по смыслу, не бойся иметь похожие вещи в разных модулях. Супер общие вещи выноси в кастомный фильтр
Ты предложил группировать хендлеры, это good.Вместе с фильтрами под группу, тоже good. Итого, при таком варианте прошлый вариант превращается в basic_commands.py: params = {"chat_type":...} def start(message: Message...): ... def ... def ... ... init.py: from . import basic_commands def setup(dp: Dispatcher): dp.register_message_handler(basic_commands.start, **basic_commands.params) Ну не знаю. Размазывать setup() по подмодулям конечно заебись, но как решение - сомнительное
Ну лично меня больше напрягает писать везде имя модуля типа basic_commands.handler...
как здесь
Нахрена тебе это?
Обсуждают сегодня