- Что это за Бот?
- Зачем нужен этот Бот?
- Как работает этот Бот?
- Какие функции есть у этого Бота?
- Почему этот Бот безопасен?
- Есть ли еще возможности, сходные с функционалом Бота? (для продвинутых пользователей)
- У меня есть предложение / Я нашел баг. С кем можно связаться?
- Как мне узнать актуальные новости о работе Бота?
ОРИОКС Мониторинг - это Бот для отслеживания изменений в образовательной электронной среде НИУ МИЭТ orioks.miet.ru на платформе Telegram.
Бот создан для автоматизации контроля над учебным процессом. Он помогает студентам удобным способом получать информацию о своей успеваемости и новостях в режиме реального времени.
Студент авторизируется в ОРИОКС через Бота. Запускается скрипт, который сравнивает данные, хранящяется на сервере, с информацией от запроса HTTP-клиента1 AIOHTTP. При появлении изменений студенту автоматически отправляется сообщение о них.
На данный момент в Боте реализованы следующие функции оповещений по разделам:
-
📓 "Обучение": изменения баллов в накопительно-балльной системе (НБС)
-
📰 "Новости": публикация общих новостей (новости по дисциплинам (coming soon));
-
📁 "Ресурсы": изменения и загрузка файлов по дисциплине (coming soon);
-
📝 "Домашние задания": изменения статусов отправленных работ;
-
📄 "Заявки": изменения статусов заявок на обходной лист, материальную помощь, социальную стипендию, копии документов, справки.
Наша политика хранения и обработки данных:
- параметры для входа (логин и пароль) обрабатываются автоматически и единократно, они не хранятся на сервере ни в каком виде;
- ответы, сохраняемые скриптом от посылаемых им запросов, не содержат информацию, позволяющую однозначно идентифицировать и обезличить пользователя;
- хранящиеся на сервере данные используются только для отправки сообщений пользователям и не передаются третьим лицам;
- в логи записывается только техническая информация о работе Бота, ни одно отправляемое/получаемое сообщение не логгируется.
Наш Бот - проект с открытым исходным кодом. Он создан действующими студентами МИЭТ для помощи нашему университетскому сообществу.
Проект такого типа подразумевает возможность пользователей взаимодействовать с кодом самостоятельно. Вы можете просмотреть реализуемые скрипты и решить, пользоваться ли данным готовым Ботом, или выбрать вариант для продвинутых пользователей с реализацией на своем собственном сервере.
Есть возможность запустить настоящего Бота на собственном сервере, используя инструкцию.
Более того:
Существуют два независимых скрипта2, с помощью которых, имея опыт работы с GitHub и API, можно реализовать работу скрипта на основе GitHub Actions с выбором платформы для оповещений (API VK или API Telegram) и хранением данных с помощью API Yandex Disk:
- ORIOKS MONITORING SELENIUM — работает, используя Selenium WebDriver;
- ORIOKS MONITORING API работает на основе ORIOKS STUDENT API.34
- Клонирование репозитория и смена директории
git clone https://github.com/orioks-monitoring/bot.git && cd bot
-
Получение API токена для Telegram бота
- Пишем
/newbot
сюда: @BotFather. - Запоминаем
TELEGRAM_BOT_API_TOKEN
токен Telegram бота. - Узнаём свой Telegram ID, например, так:
- Пишем
/start
сюда: @userinfobot. - Запоминаем свой Telegram ID (для использования в
TELEGRAM_ADMIN_IDS_LIST
).
- Пишем
- Пишем
-
Копирование файла с примерами переменных окружения в файл
.env
. Замена примеров на реальные значения
cp .env.example .env && vim .env
- Создание вируального окружения и его активация
python3.10 -m venv env && source env/bin/activate
- Установка необходимых зависимостей в виртуальное окружение
pip install -r requirements.txt
- Применение миграций базы данных
alembic upgrade head
- Запуск Бота
python run-app.py
Вы можете написать в нашу поддержку — @orioks_monitoring_support_bot, а также создать Issues в репозитории.
Для новостей Бота существует канал. Не забудьте подписаться!
Footnotes
-
HTTP-клиент - это библиотека методов выполнения HTTP-запросов ↩
-
В обоих скриптах, ORIOKS MONITORING SELENIUM и ORIOKS MONITORING API, реализована только функция оповещений по разделу "Обучение". ↩
-
ORIOKS STUDENT API, по сравнению с Selenium WebDriver, имеет ряд весомых ограничений (не позволяет получить всю необходимую информацию и имеет значительную задежку в считывании выставленных баллов в НБС). ↩
-
Решение из настоящего репозитория на основе AIOHTTP является наиболее эффективным и полным среди приведенных скриптов. ↩