Частина університетів України використовує електронний розклад від ПП "Політек-софт". Розклад працює в формі веб-сайту, що є не дуже зручно для використання студентами та викладачами. В 2017 році студент ПНУ ім. В. Стефаника Тимур Фараджев запустив першу версію свого бота (з використанням РНР) в Телеграмі, мета якого - зручний доступ до розкладу. Бот зберігав дані про користувача, через що не виникало потреби щораз вводити групу/факультет/ім'я викладача та дати для отримання розкладу.
З дозволу автора, ідея була імплементована по-новому з використанням Python, PostgreSQL та бібліотеки Python-telegram-bot.
На разі створено 2 боти на основі даного коду для ПНУ ім. В. Стефаника (t.me/std_pnu_bot) та ІФНТУНГ (t.me/std_nafta_bot).
-
Клонуйте даний код на свій сервер.
-
Створіть бота та отримайте токен за допомогою Bot Father (t.me/BotFather)
-
в
config/settings.py
змінітьBOT_TOKEN
на власний -
Змініть посилання на сайт з розкладом (
SCHEDULE_HOST
) -
В якості Системи керування базою даних використовується PostgreSQL. Інсталюйте її на свій сервер та створіть користувача і базу даних. Змініть параметри в блоці
DATABASE
на відповідні.Створення БД з користувачем:
CREATE DATABASE <database_name>; CREATE USER <database_user> WITH PASSWORD '<database_password>'; ALTER ROLE <database_user> SET client_encoding TO 'utf8'; ALTER ROLE <database_user> SET default_transaction_isolation TO 'read committed'; ALTER ROLE <database_user> SET timezone TO 'UTC'; ALTER USER <database_user> CREATEDB; GRANT ALL PRIVILEGES ON DATABASE <database_name> TO <database_user>;
-
Створіть віртуальне середовище (virtualenv) та інсталюйте залежності
pip install -r requirements.txt
Активуйте його
source <your_venv>/bin/activate
-
Запустіть код на виконання. За замовчуванням бот працює по схемі polling. В
config/settings.py
є налаштування для запуску бота в режимі webhook