Как можно настроить бота, чтобы он мог принимать и отправлять вам фотографии в ответ, если с одним фото он уже правильно работает?
Для загрузки альбома фотографий в pyTelegramBotApi можно воспользоваться методом send_media_group. Вот пример кода: ```python from telebot import TeleBot, types bot = TeleBot("your_bot_token") album = types.MediaGroup() album.attach_photo(open("photo1.jpg", "rb"), caption="Photo 1") album.attach_photo(open("photo2.jpg", "rb"), caption="Photo 2") album.attach_photo(open("photo3.jpg", "rb"), caption="Photo 3") bot.send_media_group(chat_id, album) ``` Чтобы настроить бота для приема и отправки альбома фотографий, необходимо добавить обработчик для сообщений с типом "photo" и настроить логику отправки альбома в ответ. Вот пример кода: ```python @bot.message_handler(content_types=['photo']) def handle_photos(message): album = types.MediaGroup() for photo in message.photo: album.attach_photo(photo.file_id) bot.send_media_group(message.chat.id, album) @bot.message_handler(func=lambda message: True) def handle_message(message): bot.send_message(message.chat.id, "Send me a photo") bot.polling() ``` Этот код будет обрабатывать сообщения с фотографиями, создавать из них альбом и отправлять в ответ. В случае, если приходит сообщение с другим типом контента, бот просто отправляет запрос на отправку фотографии.
import os photo_file_id = [] num = 1 @bot.message_handler(content_types=['photo', 'text']) def handler_file(message): user_id = message.from_user.id data = 1 #Количество фотографий для загрузки global num num = 1 #Название фотографии media = [] photos = message.photo[-1] photo_file_id.append(photos.file_id) #Добавляем file_id фотографии для скачивания bot.send_message(user_id, f"Загружено {len(photo_file_id)}/{data} фото \nОсталось загрузить {int(data) - len(photo_file_id)} фото") if len(photo_file_id) == int(data): #Скачивание всех фотографий начнётся когда количество значений в массиве photo_file_id будет равно количеству фотографий Path(f'files/{user_id}}').mkdir(parents=True, exist_ok=True) for photo in photo_file_id: try: file_id = photo file_name = f"files/{user_id}/{num}.jpg" download_photo(file_id, file_name) pic = open(file_name, "rb") media.append(pic) num += 1 except Exception as e: print(e) num = 1 bot.send_message(user_id, "Все фотографии загружены, спасибо!") #Здесь можно добавить свою логику для отправки сообщений самому главному например: creators = [] #Тут будут условно id самых главных for i in creators: bot.send_media_group(i, media) os.rmdir(f"files/{user_id}") #В конце удаляем папку чтобы при следующем скачивании не было ошибок