Справочник¶
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— юридический адресemailsite— УРЛ сайта школыphone— контактный номер телефонаdirector— ФИО директора школыAHC— заместителя по АХЧIT— по ИТUVR— по УВР