Код: Выделить всё
@router.callback_query(StateFilter(FSMPag.forward))
async def collection_f(callback: CallbackQuery, state: FSMContext):
conn = sqlite3.connect('db23.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:
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