add scheme doc
This commit is contained in:
81
vstu_parser_result_scheme.json
Normal file
81
vstu_parser_result_scheme.json
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
"actual_at": "0", // unix seconds когда было распарсено это расписание
|
||||||
|
"notice": "LEGAL INFORMATION HERE", // legal information
|
||||||
|
"stat": {
|
||||||
|
"total_parsing_time": 100.11 // сколько занял процесс парсинга от запуска программы (сек)
|
||||||
|
},
|
||||||
|
"version": "1", // версия = 1
|
||||||
|
"excels": [ // список всех эксель файлов которые были обработаны.
|
||||||
|
{
|
||||||
|
"filename": "эксель как на сайте.xls",
|
||||||
|
"url": "https://internet./path/to/эксель как на сайте.xls", // откуда парсер скачал
|
||||||
|
"download_place": "excels/temp.xls", // куда парсер скачал
|
||||||
|
"group_names_parsed": [""], // список названий групп которые удалось достать с этого файла
|
||||||
|
"facultet": "mag", // english name of facultet к которому относится этот эксель документ
|
||||||
|
"stat": {
|
||||||
|
"download": 0.314, // сколько скачивалось (сек)
|
||||||
|
"create_reader": 0.03, // сколько создавался Reader (сек), обычно у .xlsx это от нескольких секунд до минуты, а у .xls десятые доли секунды.
|
||||||
|
"parse": 0.00, // сколько парсился (сек)
|
||||||
|
"cycles": 2 // сколько парсер сделал циклов: по факту - сколько страниц в эксель файле
|
||||||
|
},
|
||||||
|
|
||||||
|
// дальше optional
|
||||||
|
"parser_error_cycle_1": "string desk from Parser", // _1 номер цикла. не больше stat.cycles
|
||||||
|
"error": {"...":"..."} // исключение в коде
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"groups": { // список групп с данными о них
|
||||||
|
"имя-группы": {
|
||||||
|
"name": "имя-группы",
|
||||||
|
"position_human": "G6:J6", // range ячейки-заголовка группы в эксель таблице.
|
||||||
|
"slots": { // слоты - расписание этой группы на 2 недели
|
||||||
|
|
||||||
|
// важно если у группы нету например занятий в первый понидельник то и ключа не будет. => если у группы нету занятий вообще то slots = {} (пустому словарю)
|
||||||
|
|
||||||
|
// день определённой недели
|
||||||
|
// ключ - имя дня недели + (_1 OR _2 в зависимости от недели). Не полагайтесь на этот ключ, т.к. в каждой паре есть weekday (1-7) и weeknum (1-2).
|
||||||
|
// значение - список пар на этот день
|
||||||
|
"ПОНЕДЕЛЬНИК_1": {
|
||||||
|
"1-2": { // ключ - название времени пары (1-2, 2-3, 3-4 etc...), значение - информация о паре (о дисциплине в это время)
|
||||||
|
"excel_pos": "G7", // позиция в экселе
|
||||||
|
"discipline_name": "Великое знание российское", // название дисциплины (не всегда корректное)
|
||||||
|
"locations": [ // список локаций (не всегда корректный)
|
||||||
|
"В 1204"
|
||||||
|
],
|
||||||
|
"leads": [ // список лидеров (спикеров, вообщем преподователей) (не всегда корректный)
|
||||||
|
"Бадикова П.В."
|
||||||
|
],
|
||||||
|
"is_solid": true, // единая ли верхняя ячейка (т.е. ширина 4 колонки и она объединена в одну)
|
||||||
|
"time_coeff": 2, // по сути сколько пар длится пара. Тоесть если >1 то длится больше одной пары. Почти всегда 1, иногда 2. В редких случаях (химия) 3 :dead: соболезную трудящимся
|
||||||
|
"is_flow": false, // потоковая? определяется если ширина объединённой ячейки больше 4 (а 4 это размер колонки группы).
|
||||||
|
"lefttopmerged": { // частично отладочная информация, как раз о объединённой ячейке взятой как тык пальцем в верхнюю левую ячейку.
|
||||||
|
"width": 4,
|
||||||
|
"height": 2,
|
||||||
|
"excel_range": "G7:J8" // её range в экселе
|
||||||
|
},
|
||||||
|
"raw": [ // сырые данные. Содержание всех не пустых ячеек этой записи о паре. (SET data structure)
|
||||||
|
"Великое знание российское",
|
||||||
|
"В 1204б,лунатутможетбытьчтоугодно",
|
||||||
|
"даты и т.д. всё что там есть будет тут",
|
||||||
|
"практ. 4 час.",
|
||||||
|
"Преподов П.П."
|
||||||
|
],
|
||||||
|
"weekday": 1, // день недели 1- понидельник, 7 - воскр..
|
||||||
|
"weeknum": 1, // номер недели 1- первая 2-вторая.
|
||||||
|
|
||||||
|
// дальше optional
|
||||||
|
"pair_num_empty": {"..": "...", "restored": true}, // составители расписания лучшие и в макете забыли сбоку добавить [1-2] номер пары. Если restored=true то это недоразумение удалось исправить опираясь на предыдущую пару.
|
||||||
|
"to_many_parsing_time_coeff": true // если при попытке определить time_coeff, а он определяется по границам (borders) в эксель таблице, произошла ошибка (подавленный infinity loop)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"facultet": "mag", // факультет группы
|
||||||
|
"data_source": "эксельтаблица.xls" // название таблицы откуда были получены данные о этой группе
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// безусловно перечислено не всё, но многое излишне.
|
||||||
|
// ~ Stanislav Mironov
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user