Size: a a a

2020 July 31

T

Tishka17 in aiogram [ru]
То есть там разница две строки:


@dp.message_handler(..)
def h():...

Против

def h():...

def register(dp):
   dp.add_message_handler(h, ...)

...
register(dp)
источник

T

Tishka17 in aiogram [ru]
Зачем экономить 2 строки, если можно сделать один раз нормально и потом не думать?
источник

B

Bunk Bunkovich 🐈 in aiogram [ru]
Tishka17
То есть там разница две строки:


@dp.message_handler(..)
def h():...

Против

def h():...

def register(dp):
   dp.add_message_handler(h, ...)

...
register(dp)
Строк то все равно больше
источник

B

Bunk Bunkovich 🐈 in aiogram [ru]
Причем не на 2, если делать нормально
источник

T

Tishka17 in aiogram [ru]
Bunk Bunkovich 🐈
Строк то все равно больше
Ну пустые пайчарм час вставит
источник

B

Bunk Bunkovich 🐈 in aiogram [ru]
Нет
источник

B

Bunk Bunkovich 🐈 in aiogram [ru]
Я про импорты говорю
источник

T

Tishka17 in aiogram [ru]
Bunk Bunkovich 🐈
Причем не на 2, если делать нормально
Две: объявление функции и её вызов
источник

T

Tishka17 in aiogram [ru]
Импорт все равно нужен
источник

T

Tishka17 in aiogram [ru]
Направление импорта меняется
источник

B

Bunk Bunkovich 🐈 in aiogram [ru]
Tishka17
Две: объявление функции и её вызов
Ну это если ты гавнокодишь в одном файле
источник

T

Tishka17 in aiogram [ru]
Bunk Bunkovich 🐈
Ну это если ты гавнокодишь в одном файле
В первом случае ты сюда бы импортирвал dp. А во втором наоборот, импортируешь функцию регистрации туда где есть dp
источник

T

Tishka17 in aiogram [ru]
Да, если у тебя много файлов с хэндлерами, будет больше импортов и вызовов
источник

T

Tishka17 in aiogram [ru]
Я бы оценил в 2 строки на каждые 10-15 хэндлеров
источник

ЕП

Евгений Петров... in aiogram [ru]
На днях так делал (да, говнокод)

    # Список хэндлеров с указанием корутин, которыми они реализуются,
   # а также описаний команд
   handlers = {
       "help": {
           "coro": cmd_help,
           "description": "Справка"
       },
       "add_group": {
           "coro": cmd_add_group,
           "description": "Добавить группу"
       },
       "del_group": {
           "coro": cmd_del_group,
           "description": "Удалить группу"
       },
       "groups": {
           "coro": cmd_show_groups,
           "description": "Просмотр сохранённых групп"
       }
   }

   # Устанавливаем команды в интерфейсе бота Telegram
   commands = []
   for key in handlers:
       # chat_id -- бот будет реагировать на команды только в указанной супергруппе
       dp.register_message_handler(handlers[key]["coro"], commands=key, chat_id=config.notifications_group)
       commands.append(types.BotCommand(command=key, description=handlers[key]["description"]))
   # Сохраняем команды в интерфейсе бота Telegram
   await bot.set_my_commands(commands)
источник

ЕП

Евгений Петров... in aiogram [ru]
Соответственно, все эти cmd_help — обычные async def cmd_help() корутины
источник

Forevka ÐΞV... in aiogram [ru]
Евгений Петров
На днях так делал (да, говнокод)

    # Список хэндлеров с указанием корутин, которыми они реализуются,
   # а также описаний команд
   handlers = {
       "help": {
           "coro": cmd_help,
           "description": "Справка"
       },
       "add_group": {
           "coro": cmd_add_group,
           "description": "Добавить группу"
       },
       "del_group": {
           "coro": cmd_del_group,
           "description": "Удалить группу"
       },
       "groups": {
           "coro": cmd_show_groups,
           "description": "Просмотр сохранённых групп"
       }
   }

   # Устанавливаем команды в интерфейсе бота Telegram
   commands = []
   for key in handlers:
       # chat_id -- бот будет реагировать на команды только в указанной супергруппе
       dp.register_message_handler(handlers[key]["coro"], commands=key, chat_id=config.notifications_group)
       commands.append(types.BotCommand(command=key, description=handlers[key]["description"]))
   # Сохраняем команды в интерфейсе бота Telegram
   await bot.set_my_commands(commands)
а зачем так
источник

ЕП

Евгений Петров... in aiogram [ru]
Forevka ÐΞV
а зачем так
Хотел сделать автоустановку /команд автоматически
источник

ЕП

Евгений Петров... in aiogram [ru]
Плюс у меня объекты bot и dp в самом низу описаны, т.е. хэндлеры не прописать
см https://t.me/aiogram_ru/262094
источник

Forevka ÐΞV... in aiogram [ru]
а почему не делаешь дп и бота в отдельном файле и потом просто импортнуть их оттуда
источник