From 8f70d4d5fcbaf772c0dc4d8cffa7b54312c63ee6 Mon Sep 17 00:00:00 2001 From: schneefux Date: Sat, 12 Apr 2014 15:39:11 +0200 Subject: bereite auf automatische Tests vor, Refaktorisierung beginnen --- js/index.js | 108 +++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 67 insertions(+), 41 deletions(-) (limited to 'js/index.js') diff --git a/js/index.js b/js/index.js index af5aeb4..66a73d5 100644 --- a/js/index.js +++ b/js/index.js @@ -152,12 +152,18 @@ function get_plan(link, id){ url: link }); - request.done(function(result){ + request.done(function gotplan(resulthtml){ var pdf_re = new RegExp('(http://***REMOVED***\\.de/moodle/pluginfile\\.php/\\d+/mod_resource/content/\\d+.*?\\.pdf)'); - var pdflink = pdf_re.exec(result)[1]; + var pdflink = pdf_re.exec(resulthtml)[1]; + + if(pdflink == null){ + return 0; + } console.log('Plan gefunden: ' + pdflink); download_pdf(pdflink, id); + + return 1; }); request.fail(fail); @@ -187,44 +193,59 @@ function prepare_html(number){ render_pdf($('.ui-page-active').attr('id').replace(/page-vplan/, '#pdf')); }); } +} + +function gotoverview(resulthtml){ + var plans_re = new RegExp('window\\.open\\('(http://***REMOVED***\\.de/moodle/mod/resource/view\\.php\\?id=\\d+)&redirect=1'\\)', 'g'); + + var resultarr = resulthtml.match(plans_re); + + if(resultarr == null){ + $('#error_passwd').show('fast'); + $('#loginform').removeClass('ui-disabled'); + $('#loader').hide('slow'); + return 0; + } + var resultl = resultarr.length; + + prepare_html(resultl); + + j = 0; + + while((link = plans_re.exec(resulthtml)) !== null){ + console.log('suche Plan ' + link[1]); + get_plan(link[1], j++); + } + + console.log('Übersichts-Request erfolgreich'); + return 1; } -function get_overview(link, callback){ +function get_overview(link, onfail){ var request = $.ajax({ url: link }); console.log('Hole Übersicht'); - request.done(function(result){ - var plans_re = new RegExp('window\\.open\\('(http://***REMOVED***\\.de/moodle/mod/resource/view\\.php\\?id=\\d+)&redirect=1'\\)', 'g'); - var link; - - var resultarr = result.match(plans_re); - - if(resultarr == null){ - $('#error_passwd').show('fast'); - $('#loginform').removeClass('ui-disabled'); - $('#loader').hide('slow'); - return; - } - - var resultl = resultarr.length; + request.done(gotoverview); + request.fail(onfail); +} - prepare_html(resultl); - - j = 0; +function loggedin(resulthtml){ + var vertretungs_re = new RegExp('title="Vertretungsplan" href="(http://***REMOVED***\\.de/moodle/course/view\\.php\\?id=\\d+)"'); + var link = vertretungs_re.exec(resulthtml)[1]; - while((link = plans_re.exec(result)) !== null){ - console.log('suche Plan ' + link[1]); - get_plan(link[1], j++); - } + if(link == null){ + return 0; + } - console.log('Übersichts-Request erfolgreich'); - }); + window.localStorage.setItem('overviewlink', link); + console.log('Eingeloggt'); + get_overview(link, fail); - request.fail(callback); + return 1; } function sendlogin(username, password){ @@ -244,20 +265,13 @@ function sendlogin(username, password){ console.log('Logge ein'); - request.done(function(result){ - var vertretungs_re = new RegExp('title="Vertretungsplan" href="(http://***REMOVED***\\.de/moodle/course/view\\.php\\?id=\\d+)"'); - var link = vertretungs_re.exec(result)[1]; - - window.localStorage.setItem('overviewlink', link); - console.log('Eingeloggt'); - get_overview(link, fail); - }); - + request.done(loggedin); request.fail(fail); } -function login(){ +function getuserdata(){ var username = encodeURIComponent($('#username').val()); + if(username == ''){ username = window.localStorage.getItem('username'); }else{ @@ -274,14 +288,27 @@ function login(){ console.log('Benutzerdaten geladen'); if(username !== 'undefined' && username != null && username != '' && password !== 'undefined' && password != null && password != ''){ - sendlogin(username, password); + return [username, password]; + }else{ + return null; + } +} + +function login(){ + userdata = getuserdata(); + + if(userdata != null){ + sendlogin(userdata[0], userdata[1]); + return 1; }else{ $('#loginform').removeClass('ui-disabled'); $('#loader').hide('fast'); + return 0; } } // prüfen, ob ein Login notwendig ist oder ob die Session noch gültig ist + function trylogin(){ var link = window.localStorage.getItem('overviewlink'); @@ -290,10 +317,9 @@ function trylogin(){ if(typeof link !== 'undefined' && link != null){ console.log('Teste Login'); + console.log(link); - get_overview(link, function(){ - login(); - }); + get_overview(link, login); }else{ login(); } -- cgit v1.3.1