Данный проект представляет собой Telegram-бота, совмещенного с Django-фреймворком. Бот предназначен для отслеживания текущего курса валют, сравнения текущего курса валют с предыдущими и отправки пользователям сообщения, если курс изменился на N% по сравнению с предыдущим разом, когда отправлялось сообщение. Пользователь самостоятельно может выбирать, хочет ли получать рассылку, процент для сравнения, валюты для отслеживания, и может получить в любой момент текущий курс валют. Бот может нарисовать графики с курсом за определенный период времени. Курс валют отслеживается в фоне при помощи Celery и Redis. При помощи инструметов, предоставляемых Django, бот обращается к базе данных. На данный момент курс валют берется из Google.
- Python версии 3.x
- Установка пакетов, перечисленных в requirements.txt
- Зарегестрировать своего бота в telegram через BotFather
- Установить Redis. Для пользователей Windows это более младшие версии https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504 . Либо неоффициальные порты https://www.nuget.org/packages/MemuraiDeveloper/ или https://github.com/zkteco-home/redis-windows
Для начала работы запускаем сам Django-сервер manage.py runserver
.
Для запуска периодических задач по отслеживанию курса в терминале вводим:
celery -A TelegramApp beat -l INFO
.
Для запуска обработчика периодических задач и отправщика сообщений в другом терминале вводим:
celery -A TelegramApp worker -l INFO -P gevent
.
Для запуска бота в ещё одном терминале вводим:
py manage.py shell
,
from TeleBot.telebot_commands import TeleBot
,
TeleBot()
.
Бот теперь способен воспринимать команды пользователя и через django может обращаться к БД.
Ссылка на моего зарегестрированного бота: t.me/ExchangeRateBot_bot