NetSchoolAPI

NetSchoolAPI — это асинхронный АПИ-клиент для «Сетевого города». Он может получать расписание, оценки и домашнее задание.

Warning

NetSchoolAPI не поддерживает некоторые электронные дневники.

Как работает

«Сетевой город» обращается к внутреннему недокументированному АПИ; грубо говоря, сайт электронного дневника только отображает данные, которые оно возвращает. NetSchoolAPI использует это АПИ: получает сырые данные оценок, расписания и пр. и приводит их в вид, удобный для использования.

Что с этим делать

Это значит, что вы можете создать Вк- или Телеграм-бота, который будет напоминать о просроченных заданиях, показывать домашнее задание или отправлять прикрепленные файлы. И для этого не нужно заходить на сайт, выбирать школу и вводить логин и пароль!

Установка

Note

Для работы необходим Пайтон 3.9

NetSchoolAPI устанавливается через стандартный пакетный менеджер pip:

python -m pip install -U netschoolapi

Проверим, что библиотека установлена правильно:

python -m pip show netschoolapi

Если загрузка прошла успешно, будет выведена информация о библиотеке.

Минимально работающий проект

NetSchoolAPI установлен! Ниже — пример кода, который получает дневник и печатает его.

import asyncio
from netschoolapi import NetSchoolAPI


async def main():

    # Создаём клиент. Через него мы будем обращаться
    # к АПИ электронного дневника
    ns = NetSchoolAPI('https://edu.admoblkaluga.ru:444/')

    # Логинимся в "Сетевой город"
    await ns.login(
        'Аркадий Степанович Петроненко',    # Логин
        '||4R0Ль_йцУk3H',                   # Пароль
        'МБОУ "СОШ "Технический лицей"',    # Название школы
    )

    # Печатаем дневник на текущую неделю
    # О полях дневника в "Справочнике"
    print(await ns.diary())

    # Выходим из сессии
    # Если этого не делать, то при заходе на сайт
    # будет появляться предупреждение о безопасности:
    # "Под вашим логином работает кто-то другой..."
    await ns.logout()


if __name__ == '__main__':
    asyncio.run(main())

На следующей странице перечислены методы класса NetSchoolAPI.