diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/index.js | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/js/index.js b/js/index.js index 2e2bc2f..20fa180 100644 --- a/js/index.js +++ b/js/index.js @@ -89,11 +89,15 @@ function addSocialButton(vdate, msg, $div){ } } -function parseVertretungen(str){ +/* konvertiert die extrahierten Strings in ein lesbares Format und filtert nach relevanten Vertretungen */ +function parseVertretungen(str, username){ var vertretungen_re = new RegExp('(\\w+)\\s+(\\d(?:\\s+-\\s+\\d)?)\\s+((?:x\\s+)?)(\\+|\\w+|---)\\s+(\\w+|---)\\s+(\\w+|---)\\s+(.*?)\\s+(\\w+)(?:\\s+)?(.*?)'); var res; var vertretungen = []; + var nutzerklasse = username.match(/(\w+)_.*/)[1].toUpperCase(); + var subklassen = nutzerklasse.match(/(\d{1,2})([ABCD])/); + str.split('\n').forEach(function(vertretungsstr){ res = vertretungsstr.match(vertretungen_re) @@ -108,6 +112,20 @@ function parseVertretungen(str){ var lehrer = res[8]; var info = res[9]; + if(klasse.indexOf(nutzerklasse) == -1){ + var wichtig = true; + + for(j = 1; j < subklassen.length; j++){ + if(klasse.indexOf(subklassen[j]) == -1){ + wichtig = false; + } + } + + if(wichtig == false){ + return; + } + } + if(entfall == true){ if(art.length <= 1){ art = ""; @@ -150,6 +168,10 @@ function parseVertretungen(str){ } }); + vertretungen = vertretungen.filter(function(elem, pos){ // doppelte Einträge filtern + return vertretungen.indexOf(elem) == pos; + }); + console.log(JSON.stringify(vertretungen)); return vertretungen; } @@ -202,30 +224,16 @@ function renderPage($div, pdf, pageNumber, callback){ last_block = block; } - var highlights = []; - var vertretungen = parseVertretungen(page_text); var username = getuserdata()[0]; + var vertretungen = parseVertretungen(page_text, username); - if(username !== null){ - var klasse = username.match(/(\w+)_.*/)[1]; - - if(klasse !== null){ - vertretungen.forEach(function(vertretung){ - if(vertretung.indexOf(klasse) > -1 || vertretung.indexOf('Unterrichtsschluss') > -1){ - highlights.push(vertretung); - console.log('Wichtige Vertretung: ' + vertretung); - } - }); - } - } - - if(highlights.length > 0){ + if(vertretungen.length > 0){ var vdate = new Date($div.data('date')); vdate.setHours(18); vdate.setMinutes(0); - addNotification(vdate, highlights.join('\n')); - addSocialButton(vdate, highlights.join(', '), $div); + addNotification(vdate, vertretungen.join('\n')); + addSocialButton(vdate, vertretungen.join(', '), $div); } }); |
