Данный Telegram-бот предназначен для анализа сайта Hotels.com и поиска подходящих пользователю отелей
Для корректной работы бота требуется Python версии не ниже 3.8, а также следующие модули:
- certifi==2021.5.30
- charset-normalizer==2.0.6
- colorama==0.4.4
- docopt==0.6.2
- idna==3.2
- loguru==0.5.3
- pip-upgrade==0.0.6
- pipreqs==0.4.10
- pyTelegramBotAPI==4.1.0
- python-decouple==3.5
- python-dotenv==0.19.1
- requests==2.26.0
- telebot==0.0.4
- urllib3==1.26.7
- win32-setctime==1.0.3
- yarg==0.1.9
- pip==21.2.4
- wheel==0.36.2
- setuptools==58.1.0
Бот использует технологию поллинга, поэтому дополнительного конфигурирования сервера не требуется. В составе бота используются следующие файлы:
- main.py - основной файл работы телеграм-бота
- bot_messages.py - файл, содержащий функции для вывода различных сообщений
- get_info.py - файл, содержащий функции поиска и вывода результатов поиска пользователя, а также работы с базой данных SQLite3
- set_params.py - файл, содержащий функции для обработки ответов клавиатуры и API
- .env - файл, содержащий токен подключения бота к серверам Telegram и токен подключения к API hotels.com. Этот файл необходимо создать вручную
- requirements.txt - список необходимых модулей
- user_class.py - файл, содержащий класс пользователя для его инициализации
Для функционирования бота вам сначала необходимо зарегистрировать бота в Telegram с помощью @BotFather. После этого зарегистрироваться на сайте http://rapidapi.com и получить API_KEY для подключения к его API. Полученные токены необходимо расположить в файле ".env":
- BOT_TOKEN = 'токен, полученный от @BotFather в Telegram
- API_KEY = 'ключ, полученный от rapidapi.com'`
После установки необходимых библиотек можно запускать бота. Запуск осуществляется запуском главного файла main.py. После запуска бот начнёт функционировать в Telegram под именем @Travelvan_bot
- /start - Приветствие с пользователем
- /language - Изменение языка общения с ботом
- /help - Вывод списка команд для бота
- /lowprice - Поиск отелей с низкой ценой
- /highprice - Поиск отелей с высокой ценой
- /bestdeal - Поиск отелей, наиболее подходящих по цене и расположению от центра города
- /history - Вывод результатов последнего запроса пользователя