Непонятная проблема с telegram-ботом сделанным c помощью aiogram
У меня возникла следующая проблема. Когда бот работает сам по себе, без добавления в чат, то все хорошо. Но будучи добавленным в чат он не обрабатывает нажатие на кнопку "сброс". Чем это может быть вызвано? При нажатии на кнопку сброс появляется сообщение "Введите название города" как и должно быть, но при попытке ввести его появляется сообщение типа - 2023-11-06 16:17:31,853 - [INFO] - aiogram.event - (dispatcher.py).feed_update(171) - Update id=838897882 is not handled. Duration 0 ms by bot id=6559079465 Повторюсь - вне чата бот отрабатывает абсолютно корректно, я совершаю абсолютно те же действия в той же последовательности. Где может быть проблема?
Вот мои хэндлеры.
from aiogram import Bot
from aiogram.fsm.context import FSMContext
from core.utils.states import WeatherStates
from core.keyboards.inline import keyboard
from core.api_requests.request import get_weather
from core.utils.dbconnect import dbsave, dbselect
from core.settings import settings
bot = Bot(token=settings.bots.bot_token)
city = ''
async def get_start(message, state: FSMContext):
await message.answer('Введите свой город:')
await state.set_state(WeatherStates.waiting_for_city)
current_state = await state.get_state()
print(current_state)
async def help(message):
await message.answer('Этот бот предоставляет информацию о погоде '
'в различных населенных пунктах. После ввода вашего '
'населенного пункта бот запомнит его и вам не придется '
'вводить его название повторно. Если же вы захотите изменить '
'его то нажмите кнопку "сброс" и введите новое название.')
async def get_city(message, state: FSMContext):
global city
city = message.text
user_id = message.from_user.id
city, temp_celsius, wind_speed, desc = await get_weather(city)
await dbsave(user_id, city, temp_celsius, desc, wind_speed)
# Запрос к API и вывод данных о погоде в сообщении
await message.answer(f"Погода в {city}: {temp_celsius} градусов, {desc},\
ветер {wind_speed} м/с")
# Отправка инлайн клавиатуры с двумя кнопками "сброс"
# и "запросить погоду в {city}"
await message.answer(text='Выберите действие', reply_markup=keyboard)
await state.set_state(WeatherStates.waiting_for_choice)
async def request_weather(callback_query):
global city
message = callback_query.message
user_id = message.from_user.id
city, temp_celsius, wind_speed, desc = await get_weather(city)
await dbsave(user_id, city, temp_celsius, desc, wind_speed)
city, temperature, describe, wind = await dbselect(user_id)
await message.answer(f"Погода в {city}: {temp_celsius} градусов, {desc},\
ветер {wind_speed} м/с")
await message.answer(text='Выберите действие', reply_markup=keyboard)
await bot.answer_callback_query(callback_query.id)
async def reset(callback_query, state: FSMContext):
await state.clear()
await get_start(callback_query.message, state)