Telebot Обработчик событий
Делаю обработчик событий,при нажатии на inline кнопку срабатывает обработка данной кнопки "add_book": Но после написания имени автора выдает ошибку и не перекидывает на следующий шаг. Ошибка: name 'message' is not defined
@bot.callback_query_handler(func=lambda call:True)
def all_knig(call):
if call.message:
if call.data == 'add_book':
bot.send_message(call.message.chat.id, 'Напишите фамилию автора в формате(А.С.Пушкин)')
global af
af = message.text.strip()
bot.register_next_step_handler(message, name_b)
Следующий шаг должен быть такой:
@bot.message_handler(content_types=['text'])
def name_b(message):
global name_book
name_book = message.text.strip()
response=requests.get("https://teleserial.club/poisk/", params=params).text
soup = BeautifulSoup(response, 'lxml')
block = soup.find('a', class_='side-item1').get('href')
conn = connect('DBmag.sql')
cur = conn.cursor()
cur.execute(f'INSERT INTO book (author, name_book, search) VALUES ("{af}", "{name_book}", "https://teleserial.club{block}")')
conn.commit()
cur.close()
conn.close()
bot.send_message(message.chat.id, 'Книга успешно добавлена!')
bot.register_message_handler(message, glaf_m)
Ответы (1 шт):
Автор решения: NTA
→ Ссылка
Внимательно прочитайте ваш код. Вы видите упоминание message? Python тоже не видит, и выдает ошибку. Я особо не разбираюсь конкретно в TeleBot, но мне кажется надо message заменить на call.message. Вместо:
af = message.text.strip()
bot.register_next_step_handler(message, name_b)
Попробуйте:
af = call.message.text.strip()
bot.register_next_step_handler(call.message, name_b)