Телеграмм бот. Как отправлять на каждый запрос рандомную картинку
У меня есть простой телеграмм бот, я хочу чтоб каждый раз когда пользователь отправлял сообщение, ему приходила в ответ картинка при том чтоб при каждом сообщении она была разная.
import telebot
bot = telebot.TeleBot('')
@bot.message_handler(commands=['start','help'])
def start(message):
mess = f'Привет,<b>{message.from_user.first_name} , мои команды: Привет,Плохое,Мем </b>'
bot.send_message(message.chat.id, mess, parse_mode='html')
@bot.message_handler()
def get_user_text(message):
if message.text == "Привет":
bot.send_message(message.chat.id, "Привет,какое у тебя настроение?")
elif message.text == "Плохое":
bot.send_message(message.chat.id,f"Единственное, что может сделать мир лучше – это твоя улыбка",parse_mode='html')
elif message.text == "Мем":
photo = open('mem1.jpg', 'rb')
bot.send_photo(message.chat.id,photo)
else:
bot.send_message(message.chat.id,"Если все даже хуже чем плохо,то напиши мне, помогу в любое время :)",parse_mode='html')
bot.polling(none_stop=True)
Ответы (1 шт):
Поскольку вы не предоставили информацию о том, откуда хотите брать картинки, на основе вашего кода, могу предположить, что у вас уже есть папка с картинками.
Тогда самым простым способом будет получение списка названий картинок из папки:
import os
images = os.listdir('C:\\полный\\путь\\к\\папке\\c\\картинками')
А затем, при вызове команды выбирать случайное название файла из этого списка и отправлять его. Разумеется, чтобы картинки не повторялись, нужно удалять выбранный элемент из списка:
import random
img = random.choice(images)
images.remove(img)
. . .
Если вам нужна случайная картинка из интернета, то просто откройте в гугле запрос random picture api и выберите любой подходящий сервис.