/KraiokoPerm_bot

Телеграм бот для получения результатов ЕГЭ (ОГЭ) с сайта РЦОИ Пермского края (Kraioko)

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Kraioko Perm Telegram Bot

@kraioko_results_bot

Статья на Хабр

! Бот отключен до следующего года (в связи с окончанием основных периодов ГИА 2024)

Данный бот предназначен для получения результатов ГИА с сайта Kraioko.

Возможности

  • Просмотр результатов экзаменов;
  • Подписка на уведомления об изменении результатов;
  • Сохранение анонимности пользователей (используется хеширование telegram id, за исключением подписок на уведомления).

Основные используемые библиотеки: aiogram, sqlite3, BeautifulSoup, requests, asyncio.

Пользовательские команды:

/passport <серия и номер паспорта без разделителей> - добавить паспортные данные
/my_passport - просмотр сведений о пользователе
/check - проверить результаты на Kraioko (в текущий момент)
/subscribe - подписаться на уведомления (или отписаться от уведомлений, в замисимости от состояния подписки) об обновлении результатов
/refusal - отказ от использования (удаление паспортных данных из БД)

Установка (self-hosted)

Для исключительной приватности предлагается инструкция по самостоятельной установке (для Unix-подобных ОС):

  1. Клонирование репозитория, настройка виртуального окружения и установка зависимостей;
git clone https://github.com/gberdyshev/KraiokoPerm_bot.git
cd KraiokoPerm_bot
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install -r req.txt
  1. Создание файла конфигурации;
mkdir db
echo '{"TOKEN" : "<YOUR_TELEGRAM_TOKEN>"}' > db/config.json

Получить токен и создать бота необходимо через @BotFather.

  1. Запуск;
python3 bot.py

Для опытных пользователей - возможно использование Docker в связке с Jenkins или отдельно. Настройка некоторых параметров - func/config.py в соответствии с комментариями.

Административные команды:

/monitor - сведения о времени ответа Kraioko, количестве пользователей, последнем обновлении системы отслеживания
/change_update_interval <время (с)> - изменение интервала обновления системы отслеживания