Skip to content

Telegram-Бот, написанный на библиотеке AIOgram, для анализа сайта Hotels.com и поиска подходящих отелей.

Notifications You must be signed in to change notification settings

andryplekhanov/hotels-aiogram-bot

Repository files navigation

RapidApi Hotels Telegram-bot

Telegram-бот для анализа сайта Hotels.com и поиска подходящих пользователю отелей. Работает с API от Hotels.com

Демонстрация работы программы: смотреть видео >>

Используемые технологии:

  • Python 3
  • AIOgram (асинхронный)
  • PostgreSQL (пользователи и история запросов сохраняются в БД)
  • ORM SQLAlchemy
  • Docker / Docker-compose

Как запустить бота (должен быть запущен Docker):

  • Клонировать репозиторий
  • Создать telegram-бота у BotFather и получить токен
  • Получить ключ от rapidapi:
    • Зарегистрироваться на сайте rapidapi.com
    • Перейти в API Marketplace → категория Travel → Hotels (либо просто перейти по прямой ссылке на документацию Hotels API Documentation)
    • Нажать кнопку Subscribe to Test
    • Выбрать пакет (есть бесплатный вариант)
    • Забрать KEY
  • Файл .env.dist переименовать в .env и прописать там BOT_TOKEN и RAPID_API_KEY
  • Запустить бота в Docker-контейнере: docker-compose up —-build (первый запуск может занять продолжительное время)
  • Остановить бота командой: Crtl+C

Возможности бота:

Бот реагирует на команды:

  • /start — Запустить бота
  • /help — Вывести справку
  • /lowprice — Вывести Топ самых дешёвых отелей в городе
  • /highprice — Вывести Топ самых дорогих отелей в городе
  • /bestdeal — Настраиваемый поиск отелей
  • /history — История поиска

Принцип работы

После ввода команд /lowprice и /highprice бот проводит опрос пользователя:

  • город для поездки
  • дата заселения в отель
  • количество ночей проживания в отеле
  • количество отелей для вывода результата (максимум 10)

При вводе команды /bestdeal дополнительно запрашивается:

  • диапазон цен в $ за 1 ночь
  • максимальная удаленность от центра города
  • количество взрослых гостей, заселяющихся в 1 номер отеля

После опроса Бот делает запрос к API и выводит результат. При просмотре результата пользователь может загрузить фото к конкретному отелю (10 фотографий).

При удачных запросах ведется история поиска. Все запросы и их результат сохраняется в базе данных.

При вводе команды /history пользователю предлагается уточнить действие:

  • Показать историю поиска — будет показана вся история поисковых запросов пользователя. При нажатии на конкретный запрос выводится результат того поиска.
  • Очистить историю — вся история поиска будет удалена из базы данных.

About

Telegram-Бот, написанный на библиотеке AIOgram, для анализа сайта Hotels.com и поиска подходящих отелей.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published