ДопоможІть з чат-ботом, будь-ласка (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 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів