Почему состояние не переключается сразу?Python

Программы на Python
Anonymous
Почему состояние не переключается сразу?

Сообщение Anonymous »

Код: Выделить всё

@router.callback_query(StateFilter(FSMPag.forward))
async def collection_f(callback: CallbackQuery, state: FSMContext):
conn = sqlite3.connect('mega_db.db')
cur = conn.cursor()
user_id = callback.from_user.id

cur.execute("""SELECT array FROM users WHERE user_id = ?""", (user_id,))
result = cur.fetchall()[0][0]
numbers = [int(i) for i in result.strip('[]').replace(',', '').split()]

pag_num[user_id] += 1

pathCard = pathlib.Path(dir_p, "cards", f"{pag_card[user_id][int(pag_num[user_id])]}.jpg")
pathCard = FSInputFile(pathCard)
caption=lexicon['collection']

if callback.data == 'forward':
await state.set_state(FSMPag.forward)
if pag_num[user_id] + 1 == len(numbers):
reply_markup = create_pagination_keyboard('backward', f'{pag_num[user_id]+1}/{len(numbers)}')
else:
reply_markup = create_pagination_keyboard('backward', f'{pag_num[user_id]+1}/{len(numbers)}', 'forward')
elif callback.data == 'backward':
await state.set_state(FSMPag.backward)
if pag_num[user_id] == 0:
reply_markup = create_pagination_keyboard(f'{pag_num[user_id]+1}/{len(numbers)}')
else:q
reply_markup = create_pagination_keyboard('backward', f'{pag_num[user_id]+1}/{len(numbers)}', 'forward')
else:
pass
await callback.message.edit_media(InputMediaPhoto(media=pathCard, caption=caption), reply_markup=reply_markup)
бот по какой-то причине распознает нужный колбек, но не переходит сразу в другое состояние
Пытался сбросить состояние в if блокирую, но все равно ничего не помогает. Благодаря тестам я выяснил, что колбэки распознаются правильно и весь блок, если и работает с этим колбеком, то только переключение состояний не работает

Подробнее здесь: https://stackoverflow.com/questions/787 ... mmediately

Вернуться в «Python»