@ksksidodo

Как сделать так, чтоб телеграмм бот мог отправлять рандомные фотографии?

Хочу создать бота ,чисто для себя-побаловаться,решил сделать функцию отправки рандомных фото,но никак не получается

spoiler
import telebot
import random
import os
bot = telebot.TeleBot("")


@bot.message_handler(commands=['start'])
def start(message):
    mess = f'Здравствуй,{message.from_user.first_name} {message.from_user.last_name}'
    bot.send_message(message.chat.id, mess, parse_mode='html')

images = open ('D:\фотки для питона')

assert os.path.isfile(images)
with open(images, "r") as f:
    images

data =  {'474153', 'Без названия', 'Без названия (2)'}

print(data)
print(random.sample(data, 3))

@bot.message_handler()
def get_user_text(message):
    if message.text == "привет":
        bot.send_message(message.chat.id, "Приветсвую", parse_mode='html')

    if message.text == 'получить фото':
        photo = open('test/' + random.choice(os.listdir('test')), 'rb')
        bot.send_photo(message.from_user.id, photo, caption='Лови')


    elif message.text == "машина":
        photo = ("images" , "rb")
        bot.send_photo(message.chat.id, photo)



    elif message.text == "как дела?":
        bot.send_message(message.chat.id, "нормально,с пивом потянет", parse_mode='html')


    elif message.text == "Ты лох":
        photo = open("photo_2023-03-10_19-11-27.jpg" , "rb")
        bot.send_photo(message.chat.id, photo)


    elif message.text == "пока":
        bot.send_message(message.chat.id, "Покеда!", parse_mode='html')


    elif message.text == "удачи":
        bot.send_message(message.chat.id, "и тебе", parse_mode='html')



    elif message.text == "id":
        bot.send_message(message.chat.id, f"Твой ID:{message.from_user}", parse_mode='html')
    else:
        bot.send_message(message.chat.id, "следуй командам,не пиши фигню!!!", parse_mode='html')




bot.polling(none_stop=True)
  • Вопрос задан
  • 294 просмотра
Решения вопроса 1
@kalsc12345
Неизвестный человек.
image_folder = 'D:/фотки для питона'
images = [os.path.join(image_folder, f) for f in os.listdir(image_folder) if f.endswith('.jpg')]

@bot.message_handler()
def get_user_text(message):
    if message.text == "привет":
        bot.send_message(message.chat.id, "Приветсвую", parse_mode='html')

    elif message.text == 'получить фото':
        photo = open(random.choice(images), 'rb')
        bot.send_photo(message.chat.id, photo, caption='Лови')

    elif message.text == "рандомные фото":
        photos = [open(image, 'rb') for image in random.sample(images, 3)]
        bot.send_media_group(message.chat.id, [telebot.types.InputMediaPhoto(photo) for photo in photos])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы