Задать вопрос
pagedimka
@pagedimka

Как при нажатии на кнопку Inline отправить пользователю фото из папки в проекте?

Добрый день! У меня есть такой код - подскажите пожалуйста как реализовать чтоб при нажатии на кнопку Inline: получить фото - бот отправлял пользователю рандомную фотографию из папки проекта ?
python - telegrambotapi

вот мой код:
@bot.message_handler(commands=['photo'])
def keyboard():
    start_keyboard = types.InlineKeyboardMarkup()
    menu = types.InlineKeyboardButton(text="фото", callback_data='men')
    start_keyboard.add(menu)
    bot.send_message(message.chat.id, "получить фото", reply_markup=start_keyboard)
  • Вопрос задан
  • 1573 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@alekssamos
Программист любитель
Получить
рандомную фотографию из папки проекта ?
можно так
import glob, os, random
files = []
for ext in ["png", "jpg", "jpeg"]:
	[files.append(file) for file in glob.glob(f"*.{ext}")]

random_file = files[random.randint(0, len(files)-1)]


Отправить можно так:
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
	if call.data == 'men':
		with open(random_file, 'rb') as f:
			bot.send_media_group(call.message.chat.id, [InputMediaPhoto(f)])
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@SashaN69
Школота
Делайте название фото числом, допустим 1.jpg 2.jpg.Потом рандомом выбираете число и добавляете расширение файла после этого отправляете фото юзеру.Или можно хранить название фото в бд, и рандомно выбирать запись.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы