Skip to content

API клиент и telegram бот для "Сетевой Город. Образование" написанный на Golang

Notifications You must be signed in to change notification settings

kmlebedev/netcitybot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

API клиент и telegram бот для "Сетевой Город. Образование" написанный на Golang

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published