Skip to content

chegodaevvl/telegram-bot

Repository files navigation

Телеграм-бот для поиска вариантов размещения в поездке

В современном мире, большая часть общения людей происходит в социальных сетях и службах обмена сообщениями. Использование привычных человеку способов получения информации, позволяет найти новые возможности в части установления контактов с потреблителями и новых источников получения заказов.

Представляем вашему вниманию телеграм-бот, разработанный для предоставления всем пользователям службы Telegram возможности подобрать варианты размещения для предполагаемой туристической или деловой поездки в выбранный город в выбранный даты с помощью вашего сервиса.

Порядок установки бота

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

  1. Установить на ПК Python.
  2. Создать бота на платформе Telegram
  3. Оформить подписку на API для получения информации об отелях
  4. Установить исполняемую часть бота
  5. Произвести первичную настройку порграммы и запустить ее

1. Установка Python

Telegram-бот работает в среде языка Python версии 3.8 и выше. Перед началом работы необходимо скачать последную версию Python c официального сайта. Необходимо выбрать версию, подходящую под операционную систему вашего компьютера.

После скачивания производится установка дистрибутива стандартными средствами ОС.

При установке Python на ОС Windows в мастере установки не зубудьте активировать переключатель Add Python to PATH.

2. Создание бота на платформе Telegram

Для создания бота в Telegram нужно написаить сообщение пользователю @BotFather. Вы можете ввести команду /start, чтобы посмотреть список всех команд, доступных для управления ботом.

Для создания нового бота нужно набрать команду /newbot. При создании бота вам будет предложено ввести имя бота, под которым он будет отображаться в списке пользователей, а также username, имя под которым бот можно будет найти, если перед ним поставить знак @.

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

Важно. Рекомендую сохранить сообщение с этой информацией о вашем боте в безопасном месте и удалить его в Telegram.

3. Оформление подписки на API для получения информации об отелях

Мы рекомендуем воспользоваться сервисом RapidAPI Hub. Вам нужно зарегистрироваться на сайте, и оформить подписку на использование Hotels API, которые содержат информацию об отелях.

Существует множество различных форматов подписки на данный сервис, начиная от бесплатной подписки с жестким лимитом в 500 запросов в месяц и заканчивая безлимитным тарифом, который стоит 300 долларов в месяц. Более подробно ознакомиться с тарифными планами.

После оформления подписки перейдите в пункт меню My Apps, расположенный в верхнем правом углу экрана, вы перейдете в панель разработчика. Здесь в левой боковой панели, под заголовком My Apps будет отображена одна запись вида: defaulf-application_111121. Раскройте эту запись и выберите пункт меню Security.

На этой вкладке будут перечислены все ключи, для приложений, которые вы можете использовать для работы с данными API. По умолчанию все коды скрыты маской, для просмотра реального значения ключа, необходимо нажать на иконку зачеркнутого глаза в поле рядом с выбранным Application Key.

4. Установка исполняемой части бота

В нашем случае установка бота довольна проста. Нужно создать в любом месте на жестком диске папку с названием, например, TravelBot и скопировать в нее содержимое, предоставленной вам папки с исходным кодом, или архива.

Также необходимо произвести установку виртуального окружения python в соответствии с рекомендациями доступными для вашей операционной системы. Активируйте виртуальное окружение с помощью способа актуального для вашей ОС и запустите команду:

pip install -r requirements.txt

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

5. Первичная настройка программы и ее запуск

В папке вы можете найти файл .env, в котором хранятся авторизационные данные для Telegram и Rapid API. Откройте этот файл с помощью любого текстового редактора и внесите в него следующие изменения:

  1. Для параметра bot_uid в качестве значения вставьте токен вашего Telegram бота, о котором мы говорили в рамках п.2 настоящего руководства.
  2. Для парметра key в качестве значения вставьте значения Application Key с сайта Rapid API.

Сохраните файл. Приложение готово к запуску.

Перейдите в режим командной строки. Активируйте виртуальное окружение с помощью команды актуальной для вашей ОС и введите команду:

python main.py

Поздравляем вы запустили программу.

Для остановки программы в активном окне режима командной строки нужно нажать сочетание клавищ Ctrl + C. Затем введите команду:

deactivate

Работа с программой

Вся работа с программой осуществляется непосредственно из платформы Telegarm. Вы можете получить доступ к боту введя в строке поиска его имя. Пройдя по ссылке вида https://t.me/bot, где bot - username вашего бота. Для начала работы бота необходимо ввести команду /start.

Для работы с ботом предусмотрены следующие команды:

/help - отображает список доступных команд

/lowprice - самые дешевые отели города

/highprice - самые дорогие отели города

/bestdeal - перечень отелей оптимальных по соотношению цены и расстояния до центра

/history - История поиска отелей, конкретным пользователем

Как произвести поиск отеля

Первым делом пользователь должен ввести параметры предполагаемой поездки:

  1. Вводим одну из трех команд: /lowprice, /highprice или /bestdeal для выбора желаемой категории поиска отеля
  2. Вводим город, в который планируем поехать. Бот автоматически проверяет наличие такого города в базе и, если введенный город не находится, то выдает соотвтетствующее уведомление пользователю. Перейти на следующий шаг поиска отеля будет невозможно, пока не будут введено корректное название города.
  3. Вводим предполагаемую дату поездки. Можно ввести дату только из будущего периода. Бот автоматически проверяет тип введенных данных и корректность даты и не даст перейти на следующий шаг, пока не будут введены корректные данные.
  4. Вводим количество ночей, которое пользователь планирует провести в поездке. Для корректной работы мастера необходимо ввести целое положительное число. Бот автоматически проверяет корректность вводимых данных и не позволит перейти к следующему шагу, до тех пор пока не будут введены корректные данные.
  5. Вводим предполагаемое количество гостей, которым будет необходимо размещение. Для корректной работы мастера необходимо ввести целое положительное число. Бот автоматически проверяет корректность вводимых данных и не позволит перейти к следующему шагу, до тех пор пока не будут введены корректные данные.
  6. Вводим количество отелей, коорые необходимо отобразить в поиске. Для корректной работы мастера необходимо ввести целое положительное число. Бот автоматически проверяет корректность вводимых данных и не позволит перейти к следующему шагу, до тех пор пока не будут введены корректные данные. Для данного пункта установлен лимит в 10 отелей. То есть пользователь может произвести поиск не более 10 отелей в интересующем его городе.
  7. Для удобства пользователей реализован механизм отображения фотографий по найденным отелям, но пользователю предоставлена возможность выбора - отображать фотографии отеля или нет.
  8. Вводим количество загружаемых фотографий отеля. Для корректной работы мастера необходимо ввести целое положительное число. Бот автоматически проверяет корректность вводимых данных и не позволит перейти к следующему шагу, до тех пор пока не будут введены корректные данные. Для данного пункта установлен лимит в 5 отображаемых фотографий на отель.

После завершения определения параметров поездки, бот производит поиск отелей и выводит информацию о найденных отелях непосредственно в чат пользователю. По каждому отелю отображается следующая информация:

  • Название отеля
  • Адрес отеля
  • Расстояние до центра города в км
  • Цена номера за ночь в рублях
  • Фотографии отеля, если пользователь задал эту возможность в параметрах поиска.

Просмотр истории поиска

Для просмотра истории поиска, пользователь должен ввести команду /help.

Если пользователь еще не производил поиск отелей, он получит соответствующий ответ от бота.

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

About

Python implementation for telegram bot

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages