Code Monkey home page Code Monkey logo

bot's Introduction

ОРИОКС Мониторинг Бот

Оглавление

Что это за Бот?

ОРИОКС Мониторинг - это Бот для отслеживания изменений в образовательной электронной среде НИУ МИЭТ orioks.miet.ru на платформе Telegram.

Зачем нужен этот Бот?

Бот создан для автоматизации контроля над учебным процессом. Он помогает студентам удобным способом получать информацию о своей успеваемости и новостях в режиме реального времени.

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

Студент авторизируется в ОРИОКС через Бота. Каждые 15 минут запускается скрипт, который сравнивает данные, хранящяется на сервере, с информацией от запроса HTTP-клиента1 AIOHTTP. При появлении изменений студенту автоматически отправляется сообщение о них.

Какие функции есть у этого Бота?

На данный момент в Боте реализованы следующие функции оповещений по разделам:

  • 📓 "Обучение": изменения баллов в накопительно-балльной системе (НБС)

  • 📰 "Новости": публикация общих новостей (новости по дисциплинам (coming soon));

  • 📁 "Ресурсы": изменения и загрузка файлов по дисциплине (coming soon);

  • 📝 "Домашние задания": изменения статусов отправленных работ;


  • 📄 "Заявки": изменения статусов заявок на обходной лист, материальную помощь, социальную стипендию, копии документов, справки.

Почему этот Бот безопасен?

Наша политика хранения и обработки данных:

  • параметры для входа (логин и пароль) обрабатываются автоматически и единократно, они не хранятся на сервере ни в каком виде;
  • ответы, сохраняемые скриптом от посылаемых им запросов, не содержат информацию, позволяющую однозначно идентифицировать и обезличить пользователя;
  • хранящиеся на сервере данные используются только для отправки сообщений пользователям и не передаются третьим лицам;
  • в логи записывается только техническая информация о работе Бота, ни одно отправляемое/получаемое сообщение не логгируется.

Наш Бот - проект с открытым исходным кодом. Он создан действующими студентами МИЭТ для помощи нашему университетскому сообществу.

Проект такого типа подразумевает возможность пользователей взаимодействовать с кодом самостоятельно. Вы можете просмотреть реализуемые скрипты и решить, пользоваться ли данным готовым Ботом, или выбрать вариант для продвинутых пользователей с реализацией на своем собственном сервере.

Есть ли еще возможности, сходные с функционалом Бота? (для продвинутых пользователей)

Есть возможность запустить настоящего Бота на собственном сервере, используя инструкцию.

Более того:

Существуют два независимых скрипта2, с помощью которых, имея опыт работы с GitHub и API, можно реализовать работу скрипта на основе GitHub Actions с выбором платформы для оповещений (API VK или API Telegram) и хранением данных с помощью API Yandex Disk:

Настройка на собственном сервере

  1. Клонирование репозитория и смена директории
git clone https://github.com/orioks-monitoring/bot.git && cd bot
  1. Получение API токена для Telegram бота

    1. Пишем /newbot сюда: @BotFather.
    2. Запоминаем TELEGRAM_BOT_API_TOKEN токен Telegram бота.
    3. Узнаём свой Telegram ID, например, так:
      1. Пишем /start сюда: @userinfobot.
      2. Запоминаем свой Telegram ID (для использования в TELEGRAM_ADMIN_IDS_LIST).
  2. Копирование файла с примерами переменных окружения в файл .env. Замена примеров на реальные значения

cp .env.example .env && vim .env
  1. Создание вируального окружения и его активация
python3.10 -m venv env && source env/bin/activate
  1. Установка необходимых зависимостей в виртуальное окружение
pip install -r requirements.txt
  1. Применение миграций базы данных
alembic upgrade head
  1. Запуск Бота
python run-app.py

У меня есть предложение / Я нашел баг. С кем можно связаться?

Вы можете написать в нашу поддержку — @orioks_monitoring_support, а также создать Issues в репозитории.

Как мне узнать актуальные новости о работе Бота?

Для новостей Бота существует канал. Не забудьте подписаться!

Footnotes

  1. HTTP-клиент - это библиотека методов выполнения HTTP-запросов

  2. В обоих скриптах, ORIOKS MONITORING SELENIUM и ORIOKS MONITORING API, реализована только функция оповещений по разделу "Обучение".

  3. ORIOKS STUDENT API, по сравнению с Selenium WebDriver, имеет ряд весомых ограничений (не позволяет получить всю необходимую информацию и имеет значительную задежку в считывании выставленных баллов в НБС).

  4. Решение из настоящего репозитория на основе AIOHTTP является наиболее эффективным и полным среди приведенных скриптов.

bot's People

Contributors

marplyn avatar llirrikk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.