/timetableBot

Timetable Telegram bot made with selenium

Primary LanguagePython

VVSU Timetable Bot

Telegram бот для студентов ВВГУ. Отправляет расписание вашей группы по команде.

Зачем?

Иногда так не хочется лезть в браузер, заходить в личный кабинет... Хочется прямо во время беседы с группой в телеграм чате отправить одну простую комманду и получить расписание на эту неделю.

Как работает?

Две простые команды:

/start
/timetable

Каждый указанный период времени запускается задание Celery, которое в свою очередь запускает скраппер на Selenium. Он заходит в личный кабинет, открывает расписание и сохраняет скриншот, который после будет нам отправлять по команде, и сохраняет время обновления.

Вместе с ботом поднимается панель Flower, внутри которой можно следить за выполнением заданий в Celery. Зайти в неё можно через браузер по айпи вашего сервера, либо локалхосту на порту :5555 Логин для панели admin

Как запустить?

  1. Создайте Telegram бота и получите токен
  2. Склонируйте этот репозиторий
  3. Перейдите в его корневую папку
  4. Создайте файл .env и укажите в нем следующие переменные
TG_TOKEN=ВАШ_ТОКЕН_ДЛЯ_ТЕЛЕГРАМ_БОТА
LOGIN=ВАШ_ЛОГИН_ДЛЯ_ЛК_ВВГУ
PASSWORD=ВАШ_ПАРОЛЬ_ДЛЯ_ЛК_ВВГУ
FLOWER_PASS=ПАРОЛЬ_ДЛЯ_ПАНЕЛИ_FLOWER
UPDATE_RATE=ЧАСТОТА_ОБНОВЛЕНИЯ_РАСПИСАНИЯ_В_СЕКУНДАХ

Частоту обновления советую ставить не меньше чем 30 минут (1800 сек), расписание даже в невероятно внезапные моменты настолько часто не меняется.

  1. Соберите и запустите используя docker-compose
docker-compose build
docker-compose up -d --restart unless-stopped
  1. Всё работает, радуемся :-)