Ссылки Markdown в боте Telegram ведут себя не так, как ожидалосьPython

Программы на Python
Anonymous
Ссылки Markdown в боте Telegram ведут себя не так, как ожидалось

Сообщение Anonymous »

Я делаю бота для Telegram. Пользователь запрашивает настольную игру, а бот отвечает изображением установки для нее. Он отлично работает, если просто ввести название игры, но я также хочу вывести список всех доступных игр в базе данных с помощью команды /list. В настоящее время это работает нормально, но я хочу, чтобы все названия игр были доступны для кликов, чтобы пользователь мог найти игру в этом списке, щелкнуть по ней и получить изображение, но когда пользователь нажимает ссылку, ничего не происходит.
Я пытался сделать это с помощью ссылки «t.me/meeple_house_bot/game?name={game}» для каждой игры в списке, а затем обработал ее с помощью проверки «startswith('/game?name=') ". Я думаю, что нет способов сделать то, что я ожидаю, но, возможно, есть способ сделать это.
def list_handler(chat_id):
games = get_all_games()
if games:
games_list = '\n'.join([f'[{game}](t.me/MY_BOT_NAME/game?name={game})' for game in games])
bot.send_message(chat_id, f"Available setups:\n{games_list}", parse_mode='Markdown')
else:
bot.send_message(chat_id, "Unfortunately, there are no game setups at the moment.")

@bot.message_handler(func=lambda message: message.text.startswith('/game?name='))
def inline_game_handler(message):
game_name = message.text[len('/game?name='):]
matches = get_photo_path(game_name)
if matches:
for game_name, photo_path in matches:
if os.path.exists(photo_path):
bot.send_photo(message.chat.id, photo=open(photo_path, 'rb'), caption=game_name)
else:
bot.send_message(message.chat.id,
f"I'm sorry, but I can't find a setup for {game_name}. Make sure that you typed the name of the game correctly.")
else:
bot.send_message(message.chat.id,
"I'm sorry, but I can't find a setup for this game. Make sure that you typed the name of the game correctly.")


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

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