summaryrefslogtreecommitdiff
path: root/school/node_modules/pronote-api/src/fetch/timetable.js
diff options
context:
space:
mode:
Diffstat (limited to 'school/node_modules/pronote-api/src/fetch/timetable.js')
-rw-r--r--school/node_modules/pronote-api/src/fetch/timetable.js95
1 files changed, 0 insertions, 95 deletions
diff --git a/school/node_modules/pronote-api/src/fetch/timetable.js b/school/node_modules/pronote-api/src/fetch/timetable.js
deleted file mode 100644
index 059b849..0000000
--- a/school/node_modules/pronote-api/src/fetch/timetable.js
+++ /dev/null
@@ -1,95 +0,0 @@
-const { toPronoteWeek } = require('../data/dates');
-const { withId, checkDuplicates } = require('../data/id');
-
-const { getFilledDaysAndWeeks, getTimetable } = require('./pronote/timetable');
-
-async function timetable(session, user, from = new Date(), to = null)
-{
- if (!to || to < from) {
- to = new Date(from.getTime());
- to.setDate(to.getDate() + 1);
- }
-
- const filled = await getFilledDaysAndWeeks(session, user);
- if (!filled) {
- return null;
- }
-
- const fromWeek = toPronoteWeek(session, from);
- const toWeek = toPronoteWeek(session, to);
-
- const weeks = [];
- for (let i = fromWeek; i <= toWeek; i++) {
- weeks.push(i);
- }
-
- const result = [];
- for (const week of weeks) {
- const timetable = await getTimetable(session, user, week);
- const lessons = getTimetableWeek(session, timetable);
-
- if (lessons) {
- lessons.filter(l => l.from >= from && l.from <= to).forEach(lesson => {
- if (!filled.filledWeeks.includes(week)) {
- lesson.isCancelled = true;
- }
-
- result.push(lesson);
- });
- }
- }
-
- return result.sort((a, b) => a.from - b.from);
-}
-
-function getTimetableWeek(session, table) {
- const result = [];
- if (!table || !table.lessons) {
- return
- }
-
- for (const lesson of table.lessons) {
- const from = lesson.date;
- const to = new Date(from.getTime() + (lesson.duration / session.params.ticksPerHour * 3600000));
-
- const res = {
- from,
- to,
- isDetention: lesson.isDetention,
- remoteLesson: lesson.remoteLesson,
- status: lesson.status,
- hasDuplicate: !!table.lessons.find(l => l.date.getTime() === from.getTime() && l !== lesson)
- };
-
- let room, subject, teacher;
- if (lesson.isDetention) {
- subject = lesson.content[0];
- teacher = lesson.content[1];
- room = lesson.content[2];
- } else {
- if (lesson.content) {
- subject = lesson.content.find(o => o.type === 16);
- teacher = lesson.content.find(o => o.type === 3);
- room = lesson.content.find(o => o.type === 17);
- } else {
- subject = 'Non défini';
- room = 'Non défini';
- teacher = 'Non défini';
- }
-
- res.isAway = (lesson.status || false) && !!lesson.status.match(/(.+)?prof(.+)?absent(.+)?/giu);
- res.isCancelled = !res.isAway && lesson.isCancelled;
- res.color = lesson.color;
- }
-
- res.subject = subject && subject.name || null;
- res.teacher = teacher && teacher.name || null;
- res.room = room && room.name || null;
-
- result.push(withId(res, ['from', 'to', 'subject']));
- }
-
- return checkDuplicates(result);
-}
-
-module.exports = timetable;