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.2.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.2.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mobnslib-1.2.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.2.0.tar.gz
Algorithm Hash digest
SHA256 8e86bfeb4096faf3206dad8e99c8a7bdaa5d68710abf46f202ecc98d2aa2a84b
MD5 fe0d3001c0ddd6a469830c5f611ee8c2
BLAKE2b-256 bdae1739e34d8ebec9898516845d4afe7fdae167813363f37cc37eba65c64837

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mobnslib-1.2.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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a83a099322a91f9b9e9f8b5707416d110003f7de9419f8c9250d89c1ef020d50
MD5 26f648b2fe4cd7aa8befb3cc3a2f0017
BLAKE2b-256 6bf95bd12416271f81beee729791e30b8a8a44ef2b2e2c50c789be99418f5a7b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 files

1.1.0

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