Частина університетів України використовує електронний розклад від ПП "Політек-софт". Розклад працює в формі веб-сайту, що є не дуже зручно для використання студентами та викладачами. В 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