В данном проекте представлен телеграмм-бот для сайта турагентства Too Easy Travel, предназначенный для поиска жилья.
Для запуска бота необходим установленный интерпретатор Python версии 3.9. Для работы бота необходимо дополнительно установить библиотеки «Requests», «pyTelegramBotAPI», «python-telegram-bot-calendar» и «python-dotenv».
pip instal Requests
pip instal pyTelegramBotAPI
pip instal python-telegram-bot-calendar
pip python-dotenv
Список необходимых библиотек так же представлен в «requirements.txt». Нужен файл .env куда нужно сохранить RAPIDAPI_KEY и токен от вашего бота. Бот использует API "rapidapi.com". Для работы с БД используется sqlite3.
Бот состоит из следующих модулей:
- «commands» - содержит обработчики команд бота.
- «config_data» – содержит конфигурационные настройки, такие как API key, token для telegram бота и остальные настройки.
- «dbworker» - содержит процедуры для работы с БД.
- «getting_info» - основной модуль. Содержит процедуры для анализа ответов пользователя и вывода результатов в чат.
- «keyboards» - модуль для создания виртуальной клавиатуры.
- «states» - содержит состояния работы с пользователем.
- «users_info_storage» - модуль для создания словаря временного хранения данных вводимых пользователем.
- «utils» - содержит утилиты, в данном случае предустановки команд для бота.
- «work_with_api» - модуль для работы c API.
- «.env.template» - пример токена бота и ключа к API.
- «db_history.db» - файл базы данных, необязателен.
- «load_bot.py» - модуль для загрузки бота.
- «main.py» - модуль для запуска бота.
Бот запускается из файла «main.py».
Через всплывающее меню в телеграмме:

После выбора ценовой категории пользователю предлагается ввести название города и после выбрать один из его районов:

После выбора района пользователь с помощью календаря выбирает дату заселения и дату выселения:

Далее пользователь выбирает выводимое количество отелей и фотографий каждого отеля:

Однако если пользователь выбрал команду «/bestdeal», то ему будет предложено ввести диапазон цены в долларах США и диапазон расстояния до центра выбранного города.

После чего пользователю выводится информация об отеле в данном формате и после предлагается выполнить ещё какое-либо действие.

После ввода данной команды пользователю будет выведена история его запросов.

Данная команда при её использовании выведет пользователю справку о возможных действиях с ботом.

Верещагин Евгений Вадимович - студент онлайн курсов 'Skillbox'.
