Skip to main content

mobnslib

Асинхронная библиотека для взаимодействия с сетевым дневником (NetSchool).

Установка

Библиотека использует httpx для асинхронных HTTP запросов. Для установки через pip:

pip install mobnslib

Минимальное использование

Пример авторизации и получения данных о пользователе:

import asyncio
from mobnslib import nslib

async def main():
    # Инициализация клиента. Вы можете передать свой httpx.AsyncClient и proxy
    client = nslib(url="https://example.com/")

    # 1. Авторизация
    login_data = await client.esia_login("ВАШ_ТЕЛЕФОН", "ВАШ_ПАРОЛЬ")
    
    # Если требуется MFA, используйте метод esia_mfa
    # login_data = await client.esia_mfa("123456", login_data)

    # Завершение авторизации и получение токенов
    tokens = await client.esia_login_end(login_data)
    access_token = tokens["access_token"]
    
    # 2. Получение информации об аккаунте
    info = await client.get_info(access_token)
    student_id = info[0]['id']
    print(f"ID студента: {student_id}")

    # 3. Получение дневника на текущую неделю
    diary = await client.get_diary(access_token, student_id)
    print(diary)

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

Документация по методам

Класс nslib предоставляет методы для работы с API. Все основные методы принимают access_token.

Инициализация

nslib(url: str, log_name: str = None, log_level: int = None, client: httpx.AsyncClient = None, proxy: str = None)
  • url: Базовый URL сетевого города.
  • log_name: Имя файла для записи логов.
  • log_level: Уровень логирования (1 - ERROR, 4 - DEBUG).
  • client: Пользовательский клиент httpx.AsyncClient.
  • proxy: Прокси-сервер в формате строки.

Авторизация

  • esia_login(login, password): Начало процесса авторизации через ЕСИА.
  • esia_mfa(mfa_code, login_data): Ввод кода двухфакторной аутентификации.
  • esia_login_end(login_or_mfa_data): Завершение авторизации, возвращает словарь с access_token и refresh_token.
  • token_refresh(refresh_token): Обновление токена доступа.

Основные данные

  • get_info(access_token): Возвращает основную информацию о пользователе (ID студента, роль, школу).
  • get_school_year(access_token, student_id): Возвращает текущий учебный год и список всех годов.
  • get_diary(access_token, student_id, start_date=None, end_date=None, day=None): Получение дневника за неделю или указанный период.
  • get_totals(access_token, student_id, school_year_id): Итоговые оценки.
  • get_terms(access_token, student_id, school_year_id): Учебные периоды (четверти/триместры).
  • get_subjects(access_token, student_id, school_year_id, diary=None): Предметы.

Задания и вложения

  • get_assignments(access_token, student_id, classmeeting_ids, diary, limit, delay): Домашние задания для списка уроков.
  • get_attachment_info(access_token, assignment_ids, diary, limit, delay): Информация о прикрепленных файлах.
  • load_attachment(access_token, attachment_id): Скачивание вложения.
  • upload_attachment(access_token, student_id, file_path): Загрузка вложения.

Почта

  • get_inbox_mails(access_token, student_id): Входящие сообщения.
  • get_sent_mails(access_token, student_id): Отправленные сообщения.
  • send_mail(access_token, student_id, subject, text, to_ids, ...): Отправка письма.
  • read_mail(access_token, student_id, message_id): Чтение сообщения (пометка прочитанным).

Исключения

Все исключения находятся в mobnslib.exceptions:

  • NoDataInResponse: В ответе отсутствуют ожидаемые ключи/данные.
  • NotJSONResponse: API вернул не JSON.
  • WrongLoginOrPassword: Ошибка авторизации ЕСИА.
  • UnexpectedResponse: Неожиданный ответ сервера во время авторизации.

Утилиты

Доступны функции в модуле mobnslib.utils:

  • get_week_range(pattern, day): Получение начала и конца недели для переданной даты.
  • check_response(response, log): Проверка ответа и парсинг JSON с обработкой ошибок.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mobnslib-1.1.0.tar.gz (17.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mobnslib-1.1.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file mobnslib-1.1.0.tar.gz.

File metadata

  • Download URL: mobnslib-1.1.0.tar.gz
  • Upload date:
  • Size: 17.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for mobnslib-1.1.0.tar.gz
Algorithm Hash digest
SHA256 cb3ff2a5c3d2030dd637fefa13e37cdd3e6b2d3e1cd3d5c95a9a0d22170c51db
MD5 4c6a47832f2e8f50804e7b894ca8e368
BLAKE2b-256 f51defc839d522fa8a03c5837539b508d238b22d71bd7fc5042339b5d596129a

See more details on using hashes here.

File details

Details for the file mobnslib-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: mobnslib-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for mobnslib-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be538b10458b38fd88fcd8c155c3851014c5062d59810f8a5417e83803452418
MD5 b103b3972e884579168c7781da8c5a16
BLAKE2b-256 c921c04a03553d846cf5d80c1ad4c4561abd18f3c81277d78ec7be91b7422df5

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.0

2 files

This release

1.1.0 This release

2 files

1.0.0

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page