Своего рода продолжение к написанию бота на Python, для Телеграмм.
Бот пишется на TelegramBotApi
Для вывода группы картинок используется MediaGroup. В боте предусмотрено, что если пользователю фотографии не нужны то просто выводятся текстовые сообщения с информацией об отелях. Что-то типа этого:
А если пользователь пожелал увидеть фотографии то, бот спрашивает сколько нужно фотографий и в завершении поиска эти фотографии рандомным образом выдает пользователю в сообщении.
И вот как сделать так чтобы всё было в одном сообщении, как мы привыкли в чатах телеграмма. Как-то типа так:
Принцип работы кода примерно таков:
- Мы обращаемся к серверу за дополнительной информацией. Помимо ссылок на фотографии там еще много другой информации. Я взял лишь ссылки на фотографии, из которых сформировал отдельный список images.
- Список images содержит примерно 43 (возможно это количество постоянно) ссылки на фотографии, нам же по условиям нужно не более 10 (сообщение телеграмм принимает не более 10). И для справедливости выдавать их не по порядку, а в случайном порядке. Дабы любая фотка имела шанс быть увиденной. Создаю новый список links, с количеством ссылок, равным тому, что запросил пользователь.
- Ну а далее нужно создать список объектов MediaGroup, где будут объекты ссылок на фотографии, которые объединятся в одно общее сообщение.
- Чтобы видеть описание к каждой группе снимков внизу галереи а не поверх картинок нужно только первому изображению прописать свойство caption=
Ну и собственно скриншоты рабочего кода:
Ну вот наверное и всё. Надеюсь кому-то помог.
Лайк, коммент или подписка - категорически приветствуется!