Skip to content

otaboyevsardorbek1/telegram_bot_too_easy_travel

Repository files navigation


Инструкция по эксплуатации телеграм-бота.


Перечень файлов проекта и краткое описание.


Файлы в корне проекта:

  1. .env.template - образец файла .env с описанием данных.
  2. .env - необходимо создать вручную и поместить Токен телеграм-бота и API-ключ (rapidapi.com).
  3. loader.py - создаёт экземпляры: телеграмм-бота и логгера.
  4. logging_config.py - задаёт конфигурацию логгеру
  5. main.py - запускает бота и создаёт базу данных, в случае её отсутствия
  6. readme.md - инструкция по эксплуатации телеграмм-бота
  7. hotel_database.db - база данных sqlite. В случае отсутствия в проекте, запустите телеграм-бота.
  8. dockerfile - файл конфигурации docker-контейнера

Пакеты в корне проекта:

1. settings:

  • init.py - инициализирует пакет settings и его содержимое
  • constants.py - содержит константы, для общей смены текста в коде
  • settings.py - подгружает переменные окружения, для работы бота и хранит параметры для запроса к API rapidapi.com

2. keyboards:

  • init.py - инициализирует пакет keyboards и его содержимое
  • calendar.py - содержит функции по созданию календарей и их обработчики
  • keyboards.py - содержит все inline-клавиатуры участвующие в проекте (исключение: calendar)
  • keyboards_text.py - содержит константы, для общей смены текста в кнопках клавиатуры. Так же содержит списки с данными для обработчиков inline-кнопок.

3. handlers:

  • init.py - инициализирует пакет handlers и его содержимое
  • start_help.py - содержит хэндлеры для отлова команд бота и отлова прочих сообщений (вне сценария)
  • lowprice_highprice.py - логика работы команд: lowprice, highprice и bestdeal
  • bestdeal.py - логика работы команды bestdeal (все отвлетвления из файла lowprice_highprice.py)
  • history.py - логика работы команды history

4. database:

  • init.py - инициализирует пакет database и его содержимое
  • models.py - содержит модели классов: пользователь и отель. Так же содержит всю логику запросов к БД.

5. api_requests:

  • init.py - инициализирует пакет api_requests и его содержимое
  • request_api.py - содержит все эндпоинты делающие запросы к API

Инструкция по эксплуатации:

Для запуска бота, Вам необходимо будет создать виртуальное окружение. Поместить токен-бота и API-ключ rapidapi.com в переменные окружения (Файл .env). Далее запускаем бота в файле main.py. Для отслеживания функционирования бота и возможных ошибок, ведётся логгирование, путём записи данных в файлы. info.log - записывает всю информацию, которая логируется в боте. error.log - записывает только возникшие исключения. Параметры логгирования можно изменить в файле logging_config.py. По умолчанию в конфигурации логгера, логи в файлах хранятся не более 24 часов.

Запуск бота в docker-контейнере

Для того, чтобы запустить скрипт в docker-контейнере, необходимо в терминале перейти в корневую директорию бота и выполнить команды:

docker build -t "имя под которым будет создан образ" (команда для создания образа)

docker run "имя образа" (команда для запуска образа)

Так же можете скачать образ из репозитория на dockerhub командой:

docker pull stas1994/telegram_bot_too_easy_travel

Команды бота:

  • /start - Запуск бота
  • /help — помощь по командам бота,
  • /lowprice — вывод самых дешёвых отелей в городе,
  • /highprice — вывод самых дорогих отелей в городе,
  • /bestdeal — вывод отелей, наиболее подходящих по цене и расположению от центра.
  • /history — вывод истории поиска отелей

Работа бота (для примера взята команда lowprice):

Старт бота

Start

Команда Help

Help

Выбираем команду lowprice, прописываем город поиска

City

Выбираем валюту

Currency

Выбираем количество отелей

Count_hotels

Выбираем дату заезда и выезда из отеля

Calendar_1 Calendar_2

Далее выбираем вывод отелей с фото, или без

Photo

В случае положительного ответа, выбираем количество фотографий к отелю

Count_photo

Ждём пока идёт загрузка отеля

Load_hotels

Получаем результат

Show_hotels

На этом обработка команды lowprice завершена