ДопоможІть з чат-ботом, будь-ласка (telegram)
Я пишу курсову про чат-бота в телеграмі який відсилає опис предметів з гри Дота 2 та їх картинку але щось в коді не працює та бот не присилає таблицю а лише текст «Виберіть предмет:» не розумію що в ньому не так нижче код:
import telebot from telebot import types bot = telebot.TeleBot('MyToken') items = [ {'name': 'Харт оф Тараск', 'description': 'Харт оф Тараск - предмет, що надає герою велику кількість здоровя і відновлення.', 'photo': 'https://dota2.gamepedia.com/File:Heart_of_Tarrasque.png'}, {'name': 'Блек Кінг Бар', 'description': 'Блек Кінг Бар - предмет, що робить героя невразливим до магії на певний час.', 'photo': 'https://dota2.gamepedia.com/File:Black_King_Bar.png'}, {'name': 'Блінк Даггер', 'description': 'Блінк Даггер - предмет, що дозволяє герою телепортуватися на невелику відстань.', 'photo': 'https://dota2.gamepedia.com/File:Blink_Dagger.png'}, {'name': 'Дивайн Рапір', 'description': 'Дивайн Рапір - предмет, що дає герою велику кількість урону, але при смерті герой втрачає все золото.', 'photo': 'https://dota2.gamepedia.com/File:Divine_Rapier.png'}, {'name': 'Етеріал Блейд', 'description': 'Етеріал Блейд - предмет, що робить героя безтілесним, що дозволяє йому проходити крізь юнітів і будівлі.', 'photo': 'https://dota2.gamepedia.com/File:Ethereal_Blade.png'}, {'name': 'Гліммер Кейп', 'description': 'Гліммер Кейп - предмет, що робить героя невидимим для ворогів на певний час.', 'photo': 'https://dota2.gamepedia.com/File:Glimmer_Cape.png'}, {'name': 'Гекс', 'description': 'Гекс - предмет, що перетворює ворожого героя на жабу на певний час.', 'photo': 'https://dota2.gamepedia.com/File:Hex.png'}, {'name': 'Лінк', 'description': 'Лінк - предмет, що блокує один ворожий спелл.', 'photo': 'https://dota2.gamepedia.com/File:Linken%27s_Sphere.png'}, {'name': 'Мом', 'description': 'Мом - предмет, що дає герою бонус до атаки і швидкості атаки.', 'photo': 'https://dota2.gamepedia.com/File:Mask_of_Madness.png'}, {'name': 'Шива', 'description': 'Шива - предмет, що дає герою бонус до броні, швидкості атаки і шкоди по області.', 'photo': 'https://dota2.gamepedia.com/File:Shiva%27s_Guard.png'} ] @bot.message_handler(commands=['start']) def start(message): bot.send_message(message.chat.id, 'Вітаю! Цей бот показує предмети Доти 2') @bot.message_handler(commands=['spisok']) def item_list(message): markup = types.InlineKeyboardMarkup() for item in items: btn = types.InlineKeyboardButton(text=item['name'], callback_data=item['name']) markup.add(btn) bot.send_message(message.chat.id, 'Оберіть предмет:', reply_markup=markup) @bot.callback_query_handler(func=lambda call: True) def item_callback(call): item = get_item(call.data) bot.send_message(call.message.chat.id, item['description']) bot.send_photo(call.message.chat.id, item['photo']) def get_item(name): return next(i for i in items if i['name'] == name) bot.polling()
10 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів