У меня есть декоратор callback_query_handler, который вызывается по inline кнопки. Таких кнопок у меня несколько. Когда я вызываю один из них - программа работает стабильно, но когда я пытаюсь вызвать другую, то выполняется не весь декоратор, после продолжается ранее нажатый. Решается эта проблема только ручным перезапуском программы
from aiogram import Bot, Dispatcher, executor, types
from config import TOKEN
import keyboard as kb
import requests
from bs4 import BeautifulSoup
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.answer('выберите предмет',reply_markup=kb.selless_btn)
@dp.callback_query_handler(lambda c: c.data == 'russian_9')
async def process_callback_button1(callback_query: types.CallbackQuery):
await bot.answer_callback_query(callback_query.id)
await bot.send_message(callback_query.from_user.id, 'Введите упражнение: ')
@dp.message_handler(content_types=['text'])
async def russian(message):
number = message.text
url = 'https://gdz.ru/class-9/russkii_yazik/ribchenkova-9/'+number+'-nom/'
response = requests.get(url)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'lxml')
umage_list = []
umg = soup.find('figure')
umage = umg.find_all('img')
for i in umage:
umge = 'https:' + i.get('src')
umage_list.append(umge)
await message.answer(umage_list[0])
await message.answer(umage_list[1])
return umage_list
@dp.callback_query_handler(lambda c: c.data == 'geometry_9')
async def process_callback_button2(callback_query: types.CallbackQuery):
await bot.answer_callback_query(callback_query.id)
await bot.send_message(callback_query.from_user.id, 'Введите номер: ')
@dp.message_handler(content_types=['text'])
async def geometry(message):
number = message.text
url = 'https://gdz.ru/class-9/geometria/merzlyak-polonskij/'+number+'-nom/'
response = requests.get(url)
response.raise_for_status()
soup = BeautifulSoup(response.text, 'lxml')
umage_list = []
umg = soup.find('figure')
umage = umg.find_all('img')
for i in umage:
umge = 'https:' + i.get('src')
umage_list.append(umge)
await message.answer(umage_list[0])
await message.answer(umage_list[1])
return umage_list