Skip to content

Latest commit

 

History

History
55 lines (42 loc) · 4.73 KB

README.md

File metadata and controls

55 lines (42 loc) · 4.73 KB

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, и уведомления с последней новостью будут отправлены заново.