From af6612bd688bb6880d3069e43f058724ed3ec353 Mon Sep 17 00:00:00 2001 From: Pietras Date: Fri, 21 Jan 2011 14:57:36 +0100 Subject: [PATCH 1/3] podglad sumy punktow ze sprawdzianow --- base.js | 4 ++- localstorage.js | 48 ++++++++++++++++++++++++++ manifest.json | 4 +-- mimuw.js | 89 +++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 131 insertions(+), 14 deletions(-) create mode 100644 localstorage.js diff --git a/base.js b/base.js index df30da1..041e14e 100644 --- a/base.js +++ b/base.js @@ -1,3 +1,4 @@ +$(function(){ function enableStudentPhotos() { var rows = $('table.wrnav tr td a.wrgrey'); var personRegexp = new RegExp("pokazOsobe\\(os_id:([0-9]*)\\)"); @@ -23,4 +24,5 @@ function enableStudentPhotos() { } } -enableStudentPhotos(); \ No newline at end of file +enableStudentPhotos(); +}); \ No newline at end of file diff --git a/localstorage.js b/localstorage.js new file mode 100644 index 0000000..ed548ff --- /dev/null +++ b/localstorage.js @@ -0,0 +1,48 @@ +(function(jQuery) { + + var supported = true; + if (typeof localStorage == 'undefined' || typeof JSON == 'undefined') + supported = false; + else + var ls = localStorage; + + this.setItem = function(key, value, lifetime) { + if (!supported) + return false; + + if (typeof lifetime == 'undefined') + lifetime = 60000; + + ls.setItem(key, JSON.stringify(value)); + var time = new Date(); + ls.setItem('meta_ct_'+key, time.getTime()); + ls.setItem('meta_lt_'+key, lifetime); + }; + + this.getItem = function(key) { + if (!supported) + return false; + + var time = new Date(); + if (time.getTime() - ls.getItem('meta_ct_'+key) > ls.getItem('meta_lt_'+key)) { + ls.removeItem(key); + ls.removeItem('meta_ct_'+key); + ls.removeItem('meta_lt_'+key); + return false; + } + return JSON.parse(ls.getItem(key)); + }; + + this.removeItem = function(key) { + if (!supported) + return false; + + ls.removeItem(key); + ls.removeItem('meta_ct_'+key); + ls.removeItem('meta_lt_'+key); + return true; + }; + + jQuery.localStorage = this; + +})(jQuery); diff --git a/manifest.json b/manifest.json index 9d97dcd..b4ae985 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "content_scripts": [ { - "js": [ "jquery.min.js", "base.js", "mimuw.js" ], + "js": [ "jquery.min.js", "base.js", "localstorage.js", "mimuw.js" ], "matches": [ "https://usosweb.mimuw.edu.pl/*" ] }, { @@ -11,5 +11,5 @@ ], "description": "Dodatek modyfikujący działanie usosweba.", "name": "USOSweb ++", -"version": "0.1.2" +"version": "0.2.2" } diff --git a/mimuw.js b/mimuw.js index 53dc93c..78e466d 100644 --- a/mimuw.js +++ b/mimuw.js @@ -1,13 +1,80 @@ -function enableWikispaces() { - var h2 = $('h2') - if(h2) { - if(h2[0].innerHTML == 'Informacje o pracowniku') { - var h1 = $('h1')[0]; - var name = h1.childNodes[2].nodeValue.split(' '); - var url = 'http://mimuw.wikispaces.com/' + name[2] + ', ' + name[0]; - $(h2[0].parentNode).append('
Przejdź do wikispaces'); +$(function(){ + function enableWikispaces() { + var h2 = $('h2') + if(h2) { + if(h2[0].innerHTML == 'Informacje o pracowniku') { + var h1 = $('h1')[0]; + var name = h1.childNodes[2].nodeValue.split(' '); + var url = 'http://mimuw.wikispaces.com/' + name[2] + ', ' + name[0]; + $(h2[0].parentNode).append('
Przejdź do wikispaces'); + } } } -} -enableWikispaces(); \ No newline at end of file + + /* + Podglad punktow ze sprawdzianow na glownej (Moim Usoswebie) + W localstorage zapisuje poprzednio sprawdzona sume, jezeli sie rozni + to wyswietla roznice + + By pyetras + */ + function lookupTests(){ + var url_exp = "https://usosweb.mimuw.edu.pl/kontroler.php?_action=actionx:dla_stud/studia/sprawdziany/pokaz(wez_id:" + var alrdy_checked = []; + $('a[href^='+url_exp+']').each(function(i){ + var url = $(this).attr('href'); + + if (alrdy_checked[url]){ + return; + }else{ + alrdy_checked[url] = true; + } + + var link = this; + $.get(url, function(data){ + var re = /wez_id:(\d+)/; + var id = re.exec(url)[1]; + var wynik = 0.0; + var nullCount = 0; + + var rec_find = function(table){ + $(table).each(function(i){ + if ($($(this).find('td')[1]).text().search('ocena') != -1) + return; + + var pkt_txt = $($(this).find('td')[2]).text(); + pkt = parseFloat(pkt_txt.replace('pkt', '')); + if (!isNaN(pkt)){ + wynik += pkt; + }else{ + nullCount++; + //nie ma punktu, sprawdzam poddrzewo + rec_find($(this).next('div[id^=childrenof]').children('table')); + } + }); + } + + rec_find($('div#childrenof'+id+' > table', data)); + $(link).after(' ' + wynik + ' pkt '); + var data; + + if (!(data = $.localStorage.getItem(id))){ + data = [0, 0]; + }else{ + data = [parseFloat(data[0]), parseInt([data[1]])]; + } + if (data[0] != wynik || data[1] != nullCount){ + var dif = wynik - data[0]; + $(link).next().append(' (' + ((dif >= 0)?'+':'') + dif +')'); + $(link).next().css('font-weight', 'bold'); + $.localStorage.setItem(id, [wynik, nullCount]); + } + + }); + }); + } + + enableWikispaces(); + lookupTests(); +}); \ No newline at end of file From 34e55d12ccef115a46fddc861b4df38b341bbe70 Mon Sep 17 00:00:00 2001 From: Pietras Date: Fri, 21 Jan 2011 17:34:01 +0100 Subject: [PATCH 2/3] retarded localstorage fixd --- localstorage.js | 48 ------------------------------------------------ manifest.json | 2 +- mimuw.js | 5 +++-- 3 files changed, 4 insertions(+), 51 deletions(-) delete mode 100644 localstorage.js diff --git a/localstorage.js b/localstorage.js deleted file mode 100644 index ed548ff..0000000 --- a/localstorage.js +++ /dev/null @@ -1,48 +0,0 @@ -(function(jQuery) { - - var supported = true; - if (typeof localStorage == 'undefined' || typeof JSON == 'undefined') - supported = false; - else - var ls = localStorage; - - this.setItem = function(key, value, lifetime) { - if (!supported) - return false; - - if (typeof lifetime == 'undefined') - lifetime = 60000; - - ls.setItem(key, JSON.stringify(value)); - var time = new Date(); - ls.setItem('meta_ct_'+key, time.getTime()); - ls.setItem('meta_lt_'+key, lifetime); - }; - - this.getItem = function(key) { - if (!supported) - return false; - - var time = new Date(); - if (time.getTime() - ls.getItem('meta_ct_'+key) > ls.getItem('meta_lt_'+key)) { - ls.removeItem(key); - ls.removeItem('meta_ct_'+key); - ls.removeItem('meta_lt_'+key); - return false; - } - return JSON.parse(ls.getItem(key)); - }; - - this.removeItem = function(key) { - if (!supported) - return false; - - ls.removeItem(key); - ls.removeItem('meta_ct_'+key); - ls.removeItem('meta_lt_'+key); - return true; - }; - - jQuery.localStorage = this; - -})(jQuery); diff --git a/manifest.json b/manifest.json index b4ae985..e87dd29 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "content_scripts": [ { - "js": [ "jquery.min.js", "base.js", "localstorage.js", "mimuw.js" ], + "js": [ "jquery.min.js", "base.js", "mimuw.js" ], "matches": [ "https://usosweb.mimuw.edu.pl/*" ] }, { diff --git a/mimuw.js b/mimuw.js index 78e466d..4a3458a 100644 --- a/mimuw.js +++ b/mimuw.js @@ -59,16 +59,17 @@ $(function(){ $(link).after(' ' + wynik + ' pkt '); var data; - if (!(data = $.localStorage.getItem(id))){ + if (!(data = localStorage[id])){ data = [0, 0]; }else{ + data = JSON.parse(data); data = [parseFloat(data[0]), parseInt([data[1]])]; } if (data[0] != wynik || data[1] != nullCount){ var dif = wynik - data[0]; $(link).next().append(' (' + ((dif >= 0)?'+':'') + dif +')'); $(link).next().css('font-weight', 'bold'); - $.localStorage.setItem(id, [wynik, nullCount]); + localStorage[id] = JSON.stringify([wynik, nullCount]); } }); From c71011cb4ce9435c2e895016e4c817d0d0b4c230 Mon Sep 17 00:00:00 2001 From: Pietras Date: Sat, 22 Jan 2011 18:22:34 +0100 Subject: [PATCH 3/3] testlookup for wne --- manifest.json | 6 ++--- mimuw.js | 67 +-------------------------------------------------- tests.js | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+), 69 deletions(-) create mode 100644 tests.js diff --git a/manifest.json b/manifest.json index e87dd29..822b8e3 100644 --- a/manifest.json +++ b/manifest.json @@ -1,15 +1,15 @@ { "content_scripts": [ { - "js": [ "jquery.min.js", "base.js", "mimuw.js" ], + "js": [ "jquery.min.js", "base.js", "mimuw.js", "tests.js" ], "matches": [ "https://usosweb.mimuw.edu.pl/*" ] }, { - "js": [ "jquery.min.js", "base.js" ], + "js": [ "jquery.min.js", "base.js", "tests.js" ], "matches": [ "https://usosweb.wne.uw.edu.pl/*" ] } ], "description": "Dodatek modyfikujący działanie usosweba.", "name": "USOSweb ++", -"version": "0.2.2" +"version": "0.2.3" } diff --git a/mimuw.js b/mimuw.js index 4a3458a..adb356f 100644 --- a/mimuw.js +++ b/mimuw.js @@ -11,71 +11,6 @@ $(function(){ } } } - - /* - Podglad punktow ze sprawdzianow na glownej (Moim Usoswebie) - W localstorage zapisuje poprzednio sprawdzona sume, jezeli sie rozni - to wyswietla roznice - - By pyetras - */ - function lookupTests(){ - var url_exp = "https://usosweb.mimuw.edu.pl/kontroler.php?_action=actionx:dla_stud/studia/sprawdziany/pokaz(wez_id:" - var alrdy_checked = []; - $('a[href^='+url_exp+']').each(function(i){ - var url = $(this).attr('href'); - - if (alrdy_checked[url]){ - return; - }else{ - alrdy_checked[url] = true; - } - - var link = this; - $.get(url, function(data){ - var re = /wez_id:(\d+)/; - var id = re.exec(url)[1]; - var wynik = 0.0; - var nullCount = 0; - - var rec_find = function(table){ - $(table).each(function(i){ - if ($($(this).find('td')[1]).text().search('ocena') != -1) - return; - - var pkt_txt = $($(this).find('td')[2]).text(); - pkt = parseFloat(pkt_txt.replace('pkt', '')); - if (!isNaN(pkt)){ - wynik += pkt; - }else{ - nullCount++; - //nie ma punktu, sprawdzam poddrzewo - rec_find($(this).next('div[id^=childrenof]').children('table')); - } - }); - } - - rec_find($('div#childrenof'+id+' > table', data)); - $(link).after(' ' + wynik + ' pkt '); - var data; - - if (!(data = localStorage[id])){ - data = [0, 0]; - }else{ - data = JSON.parse(data); - data = [parseFloat(data[0]), parseInt([data[1]])]; - } - if (data[0] != wynik || data[1] != nullCount){ - var dif = wynik - data[0]; - $(link).next().append(' (' + ((dif >= 0)?'+':'') + dif +')'); - $(link).next().css('font-weight', 'bold'); - localStorage[id] = JSON.stringify([wynik, nullCount]); - } - - }); - }); - } - + enableWikispaces(); - lookupTests(); }); \ No newline at end of file diff --git a/tests.js b/tests.js new file mode 100644 index 0000000..9619a2a --- /dev/null +++ b/tests.js @@ -0,0 +1,67 @@ +$(function(){ + /* + Podglad punktow ze sprawdzianow na glownej (Moim Usoswebie) + W localstorage zapisuje poprzednio sprawdzona sume, jezeli sie rozni + to wyswietla roznice + + By pyetras + */ + function lookupTests(){ + var url_exp = "kontroler.php?_action=actionx:dla_stud/studia/sprawdziany/pokaz(wez_id:" + var alrdy_checked = []; + $('a[href]').each(function(i){ + if ($(this).attr("href").indexOf(url_exp) == -1) return; + var url = $(this).attr('href'); + if (alrdy_checked[url]){ + return; + }else{ + alrdy_checked[url] = true; + } + + var link = this; + $.get(url, function(data){ + var re = /wez_id:(\d+)/; + var id = re.exec(url)[1]; + var wynik = 0.0; + var nullCount = 0; + + var rec_find = function(table){ + $(table).each(function(i){ + if ($($(this).find('td')[1]).text().search('ocena') != -1) + return; + + var pkt_txt = $($(this).find('td')[2]).text(); + pkt = parseFloat(pkt_txt.replace('pkt', '')); + if (!isNaN(pkt)){ + wynik += pkt; + }else{ + nullCount++; + //nie ma punktu, sprawdzam poddrzewo + rec_find($(this).next('div[id^=childrenof]').children('table')); + } + }); + } + + rec_find($('div#childrenof'+id+' > table', data)); + $(link).after(' ' + wynik + ' pkt '); + var data; + + if (!(data = localStorage[id])){ + data = [0, 0]; + }else{ + data = JSON.parse(data); + data = [parseFloat(data[0]), parseInt([data[1]])]; + } + if (data[0] != wynik || data[1] != nullCount){ + var dif = wynik - data[0]; + $(link).next().append(' (' + ((dif >= 0)?'+':'') + dif +')'); + $(link).next().css('font-weight', 'bold'); + localStorage[id] = JSON.stringify([wynik, nullCount]); + } + + }); + }); + } + + lookupTests(); +}) \ No newline at end of file