From 8a616204109f96e32edd5e1db93091a2ab0dec3b Mon Sep 17 00:00:00 2001 From: minie4 Date: Tue, 3 May 2022 17:22:15 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20comparing=20classes=20and?= =?UTF-8?q?=20matching=20some=20entries?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/parser/index.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/server/parser/index.js b/server/parser/index.js index d75477a..392250f 100644 --- a/server/parser/index.js +++ b/server/parser/index.js @@ -101,13 +101,19 @@ export class Parser { const classes = this.getSubstitutionClasses(classList, change.class); if (classes.length == 0) classes.push(change.class || "unknown"); + // Workaround no currect match possible for subsitutions of this + // type beacuse they don't have a class and a subject attribute + if (change.type == "Sondereins." && !change.subject) { + change.subject = change.notes; + } + const matchingSubstitution = knownSubstitutions.find((substitution) => { return substitution.date == new Date(date).setUTCHours(0, 0, 0, 0) && substitution.type == (change.type == "Entfall") ? "cancellation" : "change" && substitution.lesson == change.lesson && - classes.every((el) => substitution.class.includes(el)) && + classes.sort().join(",") == substitution.class.sort().join(",") && substitution.changedSubject == change.subject; }); @@ -119,7 +125,7 @@ export class Parser { type: change.type == "Entfall" ? "cancellation" : "change", lesson: parseInt(change.lesson), changedTeacher: change.changedTeacher, - changedRoom: change.type == "Raum-Vtr." ? change.room : undefined, + changedRoom: change.room || undefined, changedSubject: change.subject, notes: change.notes, removed: false,