Справочник

Note

У всех методов есть аргумент requests_timeout, он отвечает за то, сколько секунд клиент будет пытаться сделать запрос к апи. Если соединение отвалилось по своему таймауту, но requests_timeout ещё не закончился, то будет ещё один запрос в апи (при этом requests_timeout не сбрасывается, и даже только что начавшийся запрос может быть отменён, если requests_timeout достигнут (и это касается любого запроса, а не только повторений)). Если указать requests_timeout=0, то запрос будет повторяться вечно. Помимо указания requests_timeout для каждого метода, можно указать его в конструкторе класса NetSchoolAPI, и он будет использован по умолчанию. Если таймаут не указан нигде, то по умолчанию он равен 5. requests_timeout, переданный аргументом в метод инстанса NetSchoolAPI, является более приоритетным, чем requests_timeout, переданный в инициализатор.

Diary

Info

В «Сетевом городе» дневник находится на /angular/school/studentdiary/.

Объект класса Diary содержит три поля:

  • start: date — дата, с которой начинается дневник
>>> diary.start
datetime.date(2021, 4, 19)
  • end: date — дата последнего дня в дневнике:
>>> diary.end
datetime.date(2021, 4, 24)
  • schedule: list[Day] — список объектов Day:
>>> diary.schedule
[Day(day=datetime.date(2021, 4, 22), lessons=[Lesson(...), ...]), ...]

Day

Расписание одного дня с домашними заданиями и оценками. В классе два поля:

  • day: date
>>> wednesday = diary.schedule[2]
>>> wednesday.day
datetime.date(2021, 4, 21)
  • lessons: list[Lesson] — расписание на день:
>>> wednesday.lessons
[Lesson(number=1, start=datetime.time(8, 30), ...), ...]

Lesson

Поле assignments может содержать домашнее задание или оценку/отметку о задолженности.

Поля класса Lesson:

  • day: date — день, в который проходит урок
  • start: time — время начала урока
  • end: time — время окончания урока
  • number: int — номер урока в расписании
  • room: str — название кабинета, в котором проходит урок
  • subject: str — название предмета
  • assignments: list[Assignment] — домашнее задание, оценки и прочее

Assignment

Из-за реализации «Сетевого города» домашние задания и оценки представляются одним классом с разным typeId и наличием поля mark. Поэтому нельзя отличить домашнее задание по русскому языку и отметку за контрольную по биологии, не посмотрев на «тип» и «оценку» объекта.

Домашние задания и оценки

За оценки и просроченность заданий отвечают поля mark и is_duty соответственно.

Домашнее задание без оценки

>>> day.lessons[0].assignments
[Assignment(type='Домашнее задание', subject='История', content='§§ 16–19', mark=None, ...), ...]

Оценка за самостоятельную работу

>>> day.lessons[2].assignments
[Assignment(type='Самостоятельная работа', subject='Информатика', content='Написать NetSchoolAPI', mark=4, ...), ...]

Просроченное чтение наизусть

>>> day.lessons[5].assignments
[Assignment(type='Чтение наизусть', subject='Литература', content='«Блек энд Уайт» Маяковского', mark=None, is_duty=True, ...), ...]

Note

Задание может быть либо просрочено, либо за него может стоять оценка. Поэтому mark и is_duty не могут одновременно иметь значение. Если is_duty=True, то mark=None, как и наоборот, если mark=4, то is_duty=False.

Оценка за сочинение

>>> day.lessons[3].assignments
[Assignment(type='Сочинение', subject='Литература', content='Моё отношение к Обломову', mark=5, ...), ...]

Комментарии

Комментарий — сообщение от учителя ученику. На сайте «Сетевого города» комментарии отображаются как синие треугольнички возле оценок.

>>> assignment = day.lessons[1].assignments
>>> assignment.comment
'Дописать сочинение до 4 февраля'
>>> # или если комментария к заданию нет:
>>> assignment.comment
''

Announcement

Note

Объявления на сайте «Сетевого города» находятся на /angular/school/announcements/

Класс Announcement содержит 4 поля:

  • name: str — название
  • content: str — текст объявления
  • post_date: date — дата, когда объявление было загружено на сайт
  • attachments: list[Attachment] — приложения к объявлению

Attachment

Приложенные файлы к урокам и объявлениям.

  • id: int — поле используется, чтобы скачивать файлы
  • name: str — имя файла
  • description: str — короткое описание файла

School

Контакты школы, адрес, руководящие должности и описание.

Note

Некоторые из полей могут быть незаполнены. Поля берутся из карточки на сайте «Сетевого города». Если вам нужна ещё информация оттуда — создайте тему на гитхабе.

  • name — название школы
  • about — небольшое описание
  • address — юридический адрес
  • email
  • site — УРЛ сайта школы
  • phone — контактный номер телефона
  • director — ФИО директора школы
  • AHC — заместителя по АХЧ
  • IT — по ИТ
  • UVR — по УВР