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