Не работает функции aiogram
Не пойму в чем причина... если функция commands_messages стоит сверху то не работает вторая функция command_weather, а если поменять их местами то работают обе... в чем причина?
@dp.message_handler()
async def commands_messages(message: types.Message):
if message.text == "Погода":
await message.answer(weather.get_weather())
@dp.message_handler(commands='weather')
async def command_weather(message: types.Message):
await message.answer(weather.get_weather())
Ответы (1 шт):
Автор решения: oleksandrigo
→ Ссылка
Штош. Так как способ фикса вы уже знаете, я расскажу вам один секрет.
Вместо того чтобы делать пустой хендлер, который реально нужен очень редко, ставьте фильтры на входящие данные.
Пример
@dp.message_handler(text="Погода")
async def weather_msg(message: types.Message):
await message.answer(weather.get_weather())
И бесполезный блок ифа убрали и выглядит поприличнее. Но можно сделать вообще красоту. Вместо двух ваших хендлеров делаете вот так.
@dp.message_handler(commands=['weather'])
@dp.message_handler(text="Погода")
async def commands_messages(message: types.Message):
await message.answer(weather.get_weather())
Он будет реагировать как на команду так и на текст