Skip to content

🤖 Бот Telegram для проверки новостей в ЕКИС (lk.educom.ru)

License

Notifications You must be signed in to change notification settings

spirkaa/educom_bot

Repository files navigation

Educom Telegram Bot

Бот для проверки обновлений ленты новостей в Личном кабинете директора (ЕКИС) http://lk.educom.ru и отправки уведомлений в указанные чаты. Бот не отмечает новости и файлы как прочитанные - это делают заинтересованные лица вручную и самостоятельно. Проверка выполняется каждые 30 секунд, обновление сессии каждые 30 минут или принудительно после неудачной проверки.

Ссылки на файлы, полученные от бота, не содержат идентификатора конкретной школы, и, т.к. для доступа не требуется авторизация, они могут свободно распространяться без угрозы быть пойманным за руку. Поэтому имеет смысл назвать бота максимально нейтрально, без упоминания конкретной школы в @имени, описании или аватарке. Это позволит, не раскрывая источник, пересылать сообщения в другие чаты.

screenshot

Требования

  1. Учетная запись от личного кабинета.
  2. Токен бота, полученный от @BotFather.
  3. Идентификаторы чата администратора (для отправки ошибок бота) и пользователей (для отправки уведомлений). Можно получить от @userinfobot или самого этого бота командой /start.
  4. Для получения сообщений от бота Telegram (любого), пользователь должен начать с ним диалог. Для этого нужно найти бота в поиске или перейти по ссылке на него.

Настройки

  1. Установить Python 3.9 (с другими версиями бот не проверялся)
  2. Клонировать и открыть каталог репозитория
  3. Установить зависимости pip install -r requirements.txt
  4. Переименовать файл .env.example в .env
  5. Отредактировать файл .env, заменив переменные на свои
    • LK_USERNAME: имя пользователя для входа в ЛК
    • LK_PASSWORD: пароль для входа в ЛК
    • BOT_TOKEN: токен бота
    • BOT_USERS_CHAT_ID: идентификаторы чатов пользователей через запятую без пробелов
    • BOT_ADMIN_CHAT_ID: идентификатор чата админа
    • PROXY_URL: ссылка для http прокси. Параметр можно удалить, если ваш провайдер не блокирует API Telegram. Блокировка выглядит как-то так, но могут быть и другие ошибки: telegram.error.NetworkError: urllib3 HTTPError [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1123)
  6. Настройки по-умолчанию, которые можно переопределить через переменные
    • LK_CHECK_INTERVAL=30: частота проверки обновлений в секундах
    • BOT_DISABLE_WEB_PAGE_PREVIEW=True: отключить предпросмотр ссылок в сообщениях бота, т.е. сервер Telegram не будет скачивать файлы и прикреплять их к сообщениям

Запуск

Из командной строки python educom_bot/bot.py

Разработка

  1. Клонировать и открыть каталог репозитория
  2. Установить зависимости для разработки pip install -r requirements.dev.txt
  3. Установить pre-commit hook pre-commit install
  4. Выполнить шаги из раздела Настройки

Тестирование

Чтобы не ждать появления свежих новостей в личном кабинете, можно удалить файл entry.json, и уведомления с последней новостью будут отправлены заново.

About

🤖 Бот Telegram для проверки новостей в ЕКИС (lk.educom.ru)

Topics

Resources

License

Stars

Watchers

Forks