summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2014-04-25 17:34:58 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2016-08-15 19:46:57 +0200
commit9fc4e0aa128eb13f5ce19ceb8295b66415eb97f3 (patch)
treeb6e620ca3b925e781d8b3aa5a62c2da1619e0df7
parent160104b6a3d6b689c22f8042189330855e6953a4 (diff)
downloadwvs-vplan-9fc4e0aa128eb13f5ce19ceb8295b66415eb97f3.tar.gz
wvs-vplan-9fc4e0aa128eb13f5ce19ceb8295b66415eb97f3.zip
erkenne relevante Vertretungen besser
-rw-r--r--js/index.js46
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);
}
});