Skip to content

Latest commit

 

History

History
151 lines (136 loc) · 10.1 KB

README.md

File metadata and controls

151 lines (136 loc) · 10.1 KB

netcitybot телеграм бот для "Сетевой Город. Образование"

Базовый функционал по пересылки домашки в групповой чат класс. Для этого нужно добавить, создать своего телеграмм бота и добавить его в группу класса. Далее скачать и запустить бинарь https://github.com/kmlebedev/netcitybot/releases через переменно окружение передав ссылку до сервера, логин, пароль и ChatID канала. Профит в том, что приходят уведомления, когда приходит домашка и в случае с перебоями работы сервера электронного дневника всегда есть под рукой задания со сложениями.

Screenshot 2022-09-14 at 20 41 02

Быстрый страт

Установка бота

  1. Необходимо настроить переменное окружение
NETCITY_URL=http://192.168.1.1  # URL для сервера Сетевой Город. Образование
NETCITY_STUDENT_IDS=71111,72222 # Id учеников чья домашка будет пересылаться в чат класс. Обычно это мальчик и девочка чью группы не пересекаются
NETCITY_SCHOOL=МБОУ СОШ №1      # Образовательная организация 
NETCITY_USERNAME=ИвановИ        # Любой логин
NETCITY_PASSWORD=123456         # Пароль
NETCITY_YEAR_ID=                # Опционально, если клиент не в состоянии сам получить id
NETCITY_URLS=http://192.168.1.1 # Бот подготовит данные для диалого со входом в дневник
BOT_API_TOKEN=xxxxxxxxxxxxxxxxx # Как создать бота https://tlgrm.ru/docs/bots#kak-sozdat-bota
BOT_CHAT_ID=170000000           # Чат класса для пересылки домашки                                                
  1. Скачать и запустить приложение Для получение бинаря для Linux в терминале выполняем:
curl -sL https://github.com/kmlebedev/netcitybot/releases/download/v0.1.0/netcitybot_linux_amd64.tar.gz | tar -xvz

Для получение бинаря для Windows в PowerShell выполняем:

(New-Object System.Net.WebClient).DownloadFile("https://github.com/kmlebedev/netcitybot/releases/download/v0.1.0/netcitybot_windows_amd64.zip", "c:\temp\netcitybot.tar.gz")

Для получения и запуска докер образа необходимо сохранить переменно окруюение выше в файл ./netcity_env

docker run --env-file ./netcity_env kmlebedev/netcitybot:latest 

Запуск docker сервиса

  1. Скачать docker-compose.yaml:
curl -fsSL https://raw.githubusercontent.com/kmlebedev/netcitybot/main/docker/docker-compose.yml -o docker-compose.yml
  1. Установить переменные Пересылки домашних заданий в группу или канал:
echo "NETCITY_URL=http://192.168.1.1
NETCITY_STUDENT_IDS=71111,72222
NETCITY_SCHOOL=МБОУ СОШ №1
NETCITY_USERNAME=ИвановИ
NETCITY_PASSWORD=123456
NETCITY_YEAR_ID=
BOT_API_TOKEN=xxxxxxxxxxxxxxxxx
BOT_CHAT_ID=170000000" > .env_sync

Чат бот:

echo "
NETCITY_URLs=http://192.168.1.1,http://192.168.1.2
BOT_API_TOKEN=xxxxxxxxxxxxxxxxx" > .env_chat
  1. Запустить сервис:
docker compose --env-file .env_chat -f docker-compose.yml up -d
  1. Доступные команды Неободимо передать в BotFather через команду /setcommands
login - Войти в электронный денивник
get_contacts - Получить свои контакты
track_marks - Отслеживание отметок
subs_assignments - Пересылка заданий
add_netcity_url - Добавить http-адрес электронного дневники
logout - Выйти из электронного денивника

Доккументация по публичному Web API NetSchool

All URIs are relative to https://app.swaggerhub.com/apis/LEBEDEVKM/NetSchool/5.10.63221

Class Method HTTP request Description
AssignmentApi AssignmentTypes Get /grade/assignment/types
DiaryApi DiaryAssignnDetails Get /student/diary/assigns/{assignId}
LoginApi Getauthdata Get /auth/getdata
LoginApi Login Post /login
LoginApi Logindata Get /logindata
LoginApi Prepareemloginform Get /prepareemloginform
LoginApi Prepareloginform Get /prepareloginform
MysettingsApi Mysettings Get /mysettings
MysettingsApi Yearlist Get /mysettings/yearlist
StudentApi StudentDiary Get /student/diary
StudentApi StudentDiaryInit Get /student/diary/init

Todo Публичны бот для всех

Но ничего не мешает расширить функционал, до общего для всех бота. Пока план такой. Но при первом старте необходимо будет ввести: 1. Выбрать город => школу 2. Если города или школы нет, то ввести ссылку на электронный дневник с возвратом на шаг 1 3. Ввести логин и пароль 4. Далее данные синхронизируются

И станет доступно меню и команды

Команды:

1. login - повторная авторизация при смене пароля 2. logout - выход из дневника 3. subscribe - подписаться/отписаться на выбранные события в дневнике 4. forward - включить/выключить пересылку заданий по выбранным предметам 5. track - отслеживать успеваемость, сделанные уроки, средний балл, спорные оценки, прогноз вероятности пройти конкурс в 10-й класс.

Меню:

1. Домашние задания на сегодня или на конкретную неделю (inline кнопки дз: сделано/не сделано) 2. Отчеты по успеваемости 3. Непрочитанные сообщения и анонсы 4. Написать и отправить сообщение

Рабочие сервера Сетевой Город. Образование:

Аналоги ботов

Links