From 58ab0d4c8a33919740a35d1223f31c12d783f599 Mon Sep 17 00:00:00 2001 From: rstular Date: Mon, 1 Jun 2020 20:14:59 +0200 Subject: gsec bug fix - regex may return null --- assets/js/gsec.js | 8 +++++--- dist/js/app.js | 2 +- dist/js/gsec.js | 3 ++- dist/pages/about.html | 2 +- dist/sw.js | 4 ++-- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/assets/js/gsec.js b/assets/js/gsec.js index 19e190f..5632949 100644 --- a/assets/js/gsec.js +++ b/assets/js/gsec.js @@ -273,8 +273,10 @@ class gsec { } rowSpan.remove(); // magic - var subject = SUBJECT_REGEX.exec(subFields[1].innerHTML)[1].trim(); - var desc = DESC_REGEX.exec(subFields[1].innerHTML)[1]; + var subject = SUBJECT_REGEX.exec(subFields[1].innerHTML) + subject = subject == null ? "" : subject[1].trim(); + var desc = DESC_REGEX.exec(subFields[1].innerHTML); + desc = desc == null ? "" : desc[1]; gradings.push({ "date": dateObj, @@ -529,7 +531,7 @@ class gsec { "__EVENTARGUMENT": "Select$" + selectId }; - this.postback(GSE_URL+"Page_Gim/Uporabnik/Sporocila.aspx", dataToBeSent, null, true).then((response) => { + this.postback(GSE_URL + "Page_Gim/Uporabnik/Sporocila.aspx", dataToBeSent, null, true).then((response) => { let parser = new DOMParser(); let parsed = parser.parseFromString(response.data, "text/html"); let subject = parsed.getElementsByClassName("msgSubjectS")[0].innerHTML.trim(); diff --git a/dist/js/app.js b/dist/js/app.js index 40c5cf2..d551d22 100755 --- a/dist/js/app.js +++ b/dist/js/app.js @@ -3,7 +3,7 @@ const app_version = "1.0.14-beta"; -const previous_commit = "c40b1bd1b0c465663eef509464e3807019727caf"; +const previous_commit = "a8cffc9c334e02ca962f615cc28c66634bea06aa"; if ("serviceWorker" in navigator) { navigator.serviceWorker.register("/sw.js") diff --git a/dist/js/gsec.js b/dist/js/gsec.js index 8a5eff0..8736eaf 100644 --- a/dist/js/gsec.js +++ b/dist/js/gsec.js @@ -18,7 +18,8 @@ $.ajax({xhrFields:{withCredentials:true},crossDomain:true,url:GSE_URL+"Page_Gim/ fetchTimetable(datum=null){const SUBJECT_REGEX=/\((.+?)\)/;const ABKURZUNG_REGEX=/^(.+?) \(/;var dataToSend=datum==null?{}:{"ctl00$ContentPlaceHolder1$wkgDnevnik_edtGridSelectDate":`${datum.getDate()}.${Number(datum.getMonth()+1)}.${datum.getFullYear()}`};return new Promise((resolve)=>{var urnik={0:{},1:{},2:{},3:{},4:{},5:{},6:{}};this.postback(GSE_URL+"Page_Gim/Ucenec/DnevnikUcenec.aspx",dataToSend,null,true).then((response)=>{let parser=new DOMParser();let parsed=parser.parseFromString(response.data,"text/html");for(const urnikElement of parsed.querySelectorAll('*[id^="ctl00_ContentPlaceHolder1_wkgDnevnik_btnCell_"]')){var subFields=urnikElement.id.split("_");var period=subFields[4];var day=subFields[5];var desc=$(urnikElement).attr("title").split("\n");var subject=SUBJECT_REGEX.exec(desc[1])[1];var abkurzung=ABKURZUNG_REGEX.exec(desc[1])[1];var razred=desc[2];var teacher=desc[3];var place=desc[4];urnik[day][period]={"subject":subject,"acronym":abkurzung,"class":razred,"teacher":teacher,"place":place};} resolve(urnik);});});} fetchGradings(){const DESC_REGEX=/\((.+?)\)/m;const SUBJECT_REGEX=/^(.+?) \(/m;return new Promise((resolve)=>{var gradings=[];this.postback(GSE_URL+"Page_Gim/Ucenec/IzpitiUcenec.aspx",{},null,true).then((response)=>{let parser=new DOMParser();let parsed=parser.parseFromString(response.data,"text/html");var rowElements=parsed.getElementsByTagName("table")[0].getElementsByTagName("tbody")[0].getElementsByTagName("tr");for(const row of rowElements){var subFields=row.getElementsByTagName("td");var date=subFields[0].innerHTML.trim().split(".");var dateObj=new Date(date[2]+"-"+date[1]+"-"+date[0]);var rowSpan=subFields[1].getElementsByTagName("span")[0];var abkurzung="";if(rowSpan){abkurzung=rowSpan.innerHTML.trim();} -rowSpan.remove();var subject=SUBJECT_REGEX.exec(subFields[1].innerHTML)[1].trim();var desc=DESC_REGEX.exec(subFields[1].innerHTML)[1];gradings.push({"date":dateObj,"acronym":abkurzung,"subject":subject,"description":desc});} +rowSpan.remove();var subject=SUBJECT_REGEX.exec(subFields[1].innerHTML) +subject=subject==null?"":subject[1].trim();var desc=DESC_REGEX.exec(subFields[1].innerHTML);desc=desc==null?"":desc[1];gradings.push({"date":dateObj,"acronym":abkurzung,"subject":subject,"description":desc});} resolve(gradings);});});} fetchTeachers(){const SUBJECT_REGEX=/^(.+?(?= \()|.+(?! \())/;const ABKURZUNG_REGEX=/\((.+)\)/;const DAY_REGEX=/^(.+?), /m;const PERIOD_REGEX=/, (\d+?)\. ura/;const TIME_RANGE_REGEX=/\((.+?) - (.+?)\)/;return new Promise((resolve)=>{var Teachers={};this.postback(GSE_URL+"Page_Gim/Ucenec/UciteljskiZbor.aspx",{},null,true).then((response)=>{let parser=new DOMParser();let parsed=parser.parseFromString(response.data,"text/html");var rowElements=parsed.getElementsByTagName("table")[0].getElementsByTagName("tbody")[0].getElementsByTagName("tr");for(const row of rowElements){var subFields=row.getElementsByTagName("td");var name=stripHtml(subFields[0].innerHTML);var subjectStrings=subFields[2].innerHTML.split("
");var subjects={};for(const subjectString of subjectStrings){var subjectName=SUBJECT_REGEX.exec(stripHtml(subjectString))[1];var abkurzung=ABKURZUNG_REGEX.exec(stripHtml(subjectString));abkurzung=abkurzung==null?subjectName:abkurzung[1];subjects[abkurzung]=subjectName;} try{var TP={};TP.day=slDayToInt(DAY_REGEX.exec(subFields[3].innerHTML)[1]);TP.period=Number(PERIOD_REGEX.exec(subFields[3].innerHTML)[1]);var time_range_matches=TIME_RANGE_REGEX.exec(subFields[3].innerHTML);TP.from=time_range_matches[1];TP.till=time_range_matches[2];if(TP.day<0){TP=false;}}catch(error){var TP={};TP.day=slDayToInt(subFields[3].innerHTML.split(", ")[0]);TP.period=Number(subFields[3].innerHTML.split(", ").pop().split(". ura")[0]);TP.from=subFields[3].innerHTML.split("(").pop().split(")")[0].split(" - ")[0];TP.till=subFields[3].innerHTML.split("(").pop().split(")")[0].split(" - ")[1];if(TP.day<0){TP=false;}} diff --git a/dist/pages/about.html b/dist/pages/about.html index c1e9dfb..b8788ee 100755 --- a/dist/pages/about.html +++ b/dist/pages/about.html @@ -142,7 +142,7 @@

- ^HEAD c40b1bd1b0c465663eef509464e3807019727caf + ^HEAD a8cffc9c334e02ca962f615cc28c66634bea06aa

diff --git a/dist/sw.js b/dist/sw.js index d0b5964..99f2269 100755 --- a/dist/sw.js +++ b/dist/sw.js @@ -3,8 +3,8 @@ // Change version to cause cache refresh -const static_cache_name = "site-static-1.0.14-beta-c40b1bd"; -// commit before the latest is c40b1bd1b0c465663eef509464e3807019727caf +const static_cache_name = "site-static-1.0.14-beta-a8cffc9"; +// commit before the latest is a8cffc9c334e02ca962f615cc28c66634bea06aa // Got them with find . -not -path '*/\.*' | sed "s/.*/\"&\",/" | grep -v sw.js // sw.js NE SME BITI CACHAN, ker vsebuje verzijo! -- cgit v1.2.3