diff options
author | rstular <rok@stular.eu> | 2020-05-16 20:08:05 +0200 |
---|---|---|
committer | rstular <rok@stular.eu> | 2020-05-16 20:08:33 +0200 |
commit | 9d88acff4d715cdc6b44c8955049bb0289fb17f7 (patch) | |
tree | b7b2c5c14098c52e52e3cd334362d98f4491ecae /js/gsec.js | |
parent | Bug fix - handling afternoon lessons (diff) | |
download | beziapp-9d88acff4d715cdc6b44c8955049bb0289fb17f7.tar beziapp-9d88acff4d715cdc6b44c8955049bb0289fb17f7.tar.gz beziapp-9d88acff4d715cdc6b44c8955049bb0289fb17f7.tar.bz2 beziapp-9d88acff4d715cdc6b44c8955049bb0289fb17f7.tar.lz beziapp-9d88acff4d715cdc6b44c8955049bb0289fb17f7.tar.xz beziapp-9d88acff4d715cdc6b44c8955049bb0289fb17f7.tar.zst beziapp-9d88acff4d715cdc6b44c8955049bb0289fb17f7.zip |
Diffstat (limited to '')
-rw-r--r-- | js/gsec.js | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -363,7 +363,8 @@ class gsec { fetchAbsences(fromDate = null, tillDate = null) { // navedba datumov je deprecated. Internet je dovolj hiter za poslat maksimalno 4160 ur (16 ur/dan, 5 dni/ted, 52 ted/leto) - const FIELDS_REGEX = /^(.+) \(<span class="opr(\d)">(\dP?)<\/span>/; + const SUBJECT_LIST_REGEX = /(.+? \(<span class="opr\d">\dP?<\/span>\))(?:,\s*|$)/g; + const FIELDS_REGEX = /^(.+?) \(<span class="opr(\d)">(\dP?)<\/span>\)/; return new Promise((resolve, reject)=>{ if (!(fromDate instanceof Date) || !(tillDate instanceof Date)) { @@ -390,9 +391,15 @@ class gsec { var subFields = izostanek.getElementsByTagName("td"); var date = subFields[0].innerHTML.trim().split("."); var dateObj = new Date(Date.parse(`${date[2]}-${date[1]}-${date[0]}`)); - var subjects = {}; - for (const subject of subFields[2].innerHTML.split(", ")) { + var subjects = []; + subFields[2].innerHTML.match(SUBJECT_LIST_REGEX).forEach((subject) => { + subjects.push(subject); + }); + + var absencesBySubject = {}; + + for (const subject of subjects) { const matched_info = FIELDS_REGEX.exec(subject); var subjectName = matched_info[1]; @@ -401,9 +408,9 @@ class gsec { // Ce je v "stevilki" P, gre za popoldansko uro -> +7 ur var period = matched_info[3]; period = period.includes("P") ? Number(period.replace("P", "")) + 7 : Number(period); - subjects[period] = {status: status, subject: subjectName}; + absencesBySubject[period] = {status: status, subject: subjectName}; } - absences.push({subjects: subjects, date: dateObj}); + absences.push({subjects: absencesBySubject, date: dateObj}); } resolve(absences); }); |