Реализация Telegram-бота для поиска отелей, использующий API
сервиса Hotels.com
Implementation of Telegram-bot for hotel search using
Hotels.com API
Проект был создан в образовательных целях.
The project was created for educational purposes.
На русском:
In English:
- Клонируйте репозиторий:
git clone https://github.com/Leetovskiy/telehotels.git
- Установите зависимости из файла
Pipfile.lock
с помощьюpipenv
(инструкции по установке pipenv):
pipenv install
-
Переименуйте файл
.env.example
в.env
и задайте в нем следующие переменные:TG_BOT_TOKEN
– токен Telegram-бота;RAPID_API_KEY
– ключ для доступа к Rapid API;DATABASE_PATH
(необ.) – относительный путь к файлу базы данных SQLite (по умолчанию равен текущей директории).
-
Запустите файл
main.py
из виртуального окружения Pipenv:
pipenv run python main.py
По умолчанию бот использует polling-метод для получения обновлений с серверов Telegram. Так как polling создаёт лишнюю нагрузку на сеть, рекомендуется использовать Webhook. Ниже приведена инструкция для запуска бота в режиме Webhook на локальном устройстве с помощью Ngrok.
- Запустите Ngrok-туннель на порт 8443:
./ngrok http 8443
-
Скопируйте имя хоста (без
https://
) из строки "Forwarding" и поместите его в переменнуюWEBHOOK_HOST
файла.env
-
Запустите бота с параметром
--webhook
:
pipenv run python main.py --webhook
- Clone repository anywhere you want:
git clone https://github.com/Leetovskiy/telehotels.git
- Install requirements from
Pipfile.lock
viapipenv
(Pipenv installation instruction)
pipenv install
-
Rename
.env.example
to.env
and specify these variables:TG_BOT_TOKEN
– Telegram-bot token;RAPID_API_KEY
– Rapid API access key;DATABASE_PATH
(optional) – relative path to SQLite database.
-
Run
main.py
via Pipenv virtual environment:
pipenv run python main.py
By default, the bot uses the polling method to get updates from the Telegram servers. Since polling creates unnecessary load on the network, it is recommended to use Webhook. Here are the instructions for running the bot in Webhook mode on your local device using Ngrok.
- Run Ngrok and set up tunnel to 8443 port:
./ngrok http 8443
-
Copy the hostname (exclude
https://
part) from "Forwarding" row and put this toWEBHOOK_HOST
variable in the.env
file -
Run the bot with the
webhook
parameter:
pipenv run python main.py --webhook