Клавиатура в telebot не удаляется после нажатия
Программа проходит все этапы и нигде не выдаёт ошибки, но клавиатура продолжает жить в чате. Где я неправильно записал код тоже пока что не могу понять.
import telebot
from database import Bd
def move(user_id):
#Здесь получаем данные с ячейки БД. Добавлять полный код не стал, ибо думаю это очевидно
#Этим самым дал понять что клавиатура в функции и причина в передаваемом аргументе,
#от которого зависит какие клавиши в ней будут
starting_point = Bd().whereabouts(user_id)[1]
# Вот здесь сам экземпляр клавиатуры с которым работаем и которую нужно скрыть после клика
if starting_point == 'koord':
koord = telebot.types.InlineKeyboardMarkup()
koord_move1 = telebot.types.InlineKeyboardButton(
text='Шагнуть влево', callback_data='koord1')
koord.add(koord_move1)
koord_move2 = telebot.types.InlineKeyboardButton(
text='Шагнуть вправо', callback_data='koord2')
koord.add(koord_move2)
koord_move3 = telebot.types.InlineKeyboardButton(
text='Шагнуть вперёд', callback_data='koord3')
koord.add(koord_move3)
return koord
#Ну и так далее. Одного блока хватит для экспериментов
Сам исполняемый файл, откуда собственно и запускаем бота:
import telebot
import datasafe
import keyboard
from database import Bd
bot = telebot.TeleBot(datasafe.token, parse_mode='MarkdownV2')
@bot.message_handler(func=lambda m: True)
def echo_all(message):
incoming_message = message.text.lower()
if message.text == 'go':
kb = keyboard.move(message.from_user.id)
bot.send_message(message.chat.id, 'Выбери перемещение', reply_markup=kb)
@ bot.callback_query_handler(func=lambda call: True)
def answer(call):
# Тут у нас калбэк от клавиатур, который проверяет чо там выбрал юзер
if call.data in Bd().loclist(): #loclist() - Список всех возможных позиций игрока
for loc in Bd().loclist():
if call.data == loc:
Bd().moving(loc, call.from_user.id) #двигаем игрока записью в БД
bot.send_message(call.message.chat.id,
'Вы перешли на другую позицию', reply_markup=telebot.types.ReplyKeyboardRemove())
#Ну и собственно последняя строка это скрытие клавиатуры,
#дабы игрок не смог в истории чата (на старой клавиатуре) нажать на другую кнопку
#и "телепортироваться" на любую локацию
Однако после выбора пользователем одного из вариантов на клавиатуре, появляется текст 'Вы перешли на другую позицию', но клавиатуре так и висит. В чём может быть дело? Упрощать код ещё больше чем здесь не стал, так как в сделанной мной конструкции может и таится ошибка.