- .env.template - образец файла .env с описанием данных.
- .env - необходимо создать вручную и поместить Токен телеграм-бота и API-ключ (rapidapi.com).
- loader.py - создаёт экземпляры: телеграмм-бота и логгера.
- logging_config.py - задаёт конфигурацию логгеру
- main.py - запускает бота и создаёт базу данных, в случае её отсутствия
- readme.md - инструкция по эксплуатации телеграмм-бота
- hotel_database.db - база данных sqlite. В случае отсутствия в проекте, запустите телеграм-бота.
- dockerfile - файл конфигурации docker-контейнера
- init.py - инициализирует пакет settings и его содержимое
- constants.py - содержит константы, для общей смены текста в коде
- settings.py - подгружает переменные окружения, для работы бота и хранит параметры для запроса к API rapidapi.com
- init.py - инициализирует пакет keyboards и его содержимое
- calendar.py - содержит функции по созданию календарей и их обработчики
- keyboards.py - содержит все inline-клавиатуры участвующие в проекте (исключение: calendar)
- keyboards_text.py - содержит константы, для общей смены текста в кнопках клавиатуры. Так же содержит списки с данными для обработчиков inline-кнопок.
- init.py - инициализирует пакет handlers и его содержимое
- start_help.py - содержит хэндлеры для отлова команд бота и отлова прочих сообщений (вне сценария)
- lowprice_highprice.py - логика работы команд: lowprice, highprice и bestdeal
- bestdeal.py - логика работы команды bestdeal (все отвлетвления из файла lowprice_highprice.py)
- history.py - логика работы команды history
- init.py - инициализирует пакет database и его содержимое
- models.py - содержит модели классов: пользователь и отель. Так же содержит всю логику запросов к БД.
- init.py - инициализирует пакет api_requests и его содержимое
- request_api.py - содержит все эндпоинты делающие запросы к API
Для запуска бота, Вам необходимо будет создать виртуальное окружение. Поместить токен-бота и API-ключ rapidapi.com в переменные окружения (Файл .env). Далее запускаем бота в файле main.py. Для отслеживания функционирования бота и возможных ошибок, ведётся логгирование, путём записи данных в файлы. info.log - записывает всю информацию, которая логируется в боте. error.log - записывает только возникшие исключения. Параметры логгирования можно изменить в файле logging_config.py. По умолчанию в конфигурации логгера, логи в файлах хранятся не более 24 часов.
Для того, чтобы запустить скрипт в docker-контейнере, необходимо в терминале перейти в корневую директорию бота и выполнить команды:
docker build -t "имя под которым будет создан образ" (команда для создания образа)
docker run "имя образа" (команда для запуска образа)
Так же можете скачать образ из репозитория на dockerhub командой:
docker pull stas1994/telegram_bot_too_easy_travel
- /start - Запуск бота
- /help — помощь по командам бота,
- /lowprice — вывод самых дешёвых отелей в городе,
- /highprice — вывод самых дорогих отелей в городе,
- /bestdeal — вывод отелей, наиболее подходящих по цене и расположению от центра.
- /history — вывод истории поиска отелей
Старт бота
Команда Help
Выбираем команду lowprice, прописываем город поиска
Выбираем валюту
Выбираем количество отелей
Выбираем дату заезда и выезда из отеля
Далее выбираем вывод отелей с фото, или без
В случае положительного ответа, выбираем количество фотографий к отелю
Ждём пока идёт загрузка отеля
Получаем результат
На этом обработка команды lowprice завершена