// ==UserScript== // @name Sotierbare Pennergame Highscoresuche/liste // @namespace Eine highscore liste mit sortierfunktionen und extra suche // esauchso die normale highscore wird erweitert und zusetzlich kann man jetzt auch nach grösse und co sortieren // @author pennerhackisback früher basti1012 oder pennerhack // @description wer faul ist und klicks ersparen will nimmt dieses script // @include http://*.pennergame.de/highscore/* // @version 3.10.2017 001 // @author pennerhackisback // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @grant GM_openInTab // @grant GM_log // @grant GM_deleteValue // @icon http://www.lildevil.org/greasemonkey/images/IC-icon.png // @downloadURL none // ==/UserScript== var url = document.location.href; if (url.indexOf("berlin.pennergame.de")>=0) {var link = "http://berlin.pennergame.de"} if (url.indexOf("http://www.pennergame")>=0) { var link = "http://www.pennergame.de";} if (url.indexOf("dossergame")>=0) {var link = "http://www.dossergame.co.uk"} if (url.indexOf("menelgame")>=0) {var link = "http://www.menelgame.pl"} if (url.indexOf("clodogame")>=0) {var link = "http://www.clodogame.fr"} if (url.indexOf("mendigogame.es")>=0) {var link = "http://www.mendigogame.es"} if (url.indexOf("serserionline.com")>=0) {var link = "http://www.serserionline.com"} if (url.indexOf("bumrise")>=0) {var link = "http://www.bumrise.com/"} if (url.indexOf("muenchen.pennergame")>=0) {var link = "http://muenchen.pennergame.de/"} GM_xmlhttpRequest({ method: 'GET', url: ''+link+'/city/', onload: function( response ) { var lf = response.responseText; var stadtliste = lf.split('class="listshop">')[1].split('')[0]; var stadtliste1 = stadtliste.split('margin:3px; padding:1px;">')[1].split('')[0]; var meinepunkte = lf.split('class="el1">Punkte:')[0].split('>')[1].split('<')[0]; localStorage.setItem('meinepunkte', meinepunkte); localStorage.setItem('stadtliste', stadtliste1); }}); function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('body')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } GM_xmlhttpRequest({ method: 'GET', url: ''+link+'/fight/overview/', onload: function( response ) { var lf = response.responseText; var attmin = lf.match(/Dein Ziel muss ([0-9]+) bis ([0-9]+) Punkte haben/)[ 1 ]; var attmax = lf.match(/Dein Ziel muss ([0-9]+) bis ([0-9]+) Punkte haben/)[ 2 ]; hs2 = Math.round(attmin*1.25/3); localStorage.setItem('attmax', attmax); localStorage.setItem('attmin', attmin); } }); SortTable.ok = true; if(!document.getElementsByTagName){ alert('Browser unterstützt die Sortierfunktion nicht'); SortTable.ok = false; } /* sort_table.js http://javascript.jstruebig.de/javascript/74/ Version 2.9.7 / Datum: 28.06.2013 * Eventhandler onprogress Version 2.9.6 / Datum: 25.10.2012 * Regulärerausdruck DATE_DE verbessert Version 2.9.5 / Datum: 09.10.2012 * Regulärer ausdruck DATE_DE um die Uhrzeit erweitert. Version 2.9.4 / Datum: 18.06.2012 * .sort() Funktion erweitert, die Spalte -1 sortiert die letzte Spalte Version 2.9.3 / Datum: 15.11.2011 * zusätzliche Header Eigenschaft 'locale_de' für Zahlen mit deutschen Komma. Version 2.9.2 / 26.08.2010 * Die Sortierfunktion benutzt localeCompare() für Stringvergleiche Version 2.9.1 / 21.06.2010 * createTHead() statt createElement('thead') Version 2.9 / 31.03.2010 * Neues Attribut: class="sort_string" sortiert eine Spalte immer wie eine Zeichenkette * String.prototype.stripTag: Eine etwas verbesserte Funktion um HTML Code zu filtern Version 2.8 / 28.08.2009 * die Zellen werden nicht mehr geclont, sondern direkt umgehängt (Zeile 224), das hat den Vorteil, das in den meisten Browsern z.b. checkboxen nach der Sortierung gecheckt bleiben (im IE 6 nicht) Version 2.7 / 14.08.2009 * .sort() Funktion, um eine Spalte "von Hand" zu sortieren Version 2.6 / 07.06.2009 * leere Zellen Bug * colspan (Danke an Mathias) Version 2.5 / 05.05.2009 * ein paar Bugs beseitgt * sortier Geschwindigkeit verbessert Version 2.4 / 26.11.2008 * Die Prüfung des CSS Klassennamens in die Klasse eingebaut Version 2.3 / 28.10.2008 * ein Bug beim sortieren von Textfeldern beseitigt Version 2.2 / 16.09.2008 * sortiert auch Auswahlisten Version 2.1 / 05.09.2008 * init() Funktion Version 2.0 / 02.09.2008 * Neue schnellere Sortierroutine. * arbeitet mit dem Skript Zebratabelle zusammen http://javascript.jstruebig.de/javascript/75/ Version: 1.0 / 28.11.2007 */ // Das Element das angezeigt wird, wenn die Spalte abwärts sortiert ist SortTable.up = String.fromCharCode(9660); SortTable.alt_up = 'Aufwärts sortieren'; // Das Element das angezeigt wird, wenn die Spalte aufwärts sortiert ist SortTable.down = String.fromCharCode(9650); SortTable.alt_down = 'Abwärts sortieren'; // Farbe des Zeichens in der Spaltenüberschrift SortTable.pointer_color = '#222'; // Die Bezeichnung der Klasse der Tabellen, die sortiert werden sollen SortTable.className = 'sortable'; SortTable.init = function(){ var t = document.getElementsByTagName('table'); var ret = []; var regEx = new RegExp('\\b' + SortTable.className + '\\b', 'i'); for(var i = 0; i < t.length; i++) { if(SortTable.ok && t[i].className && regEx.test(t[i].className)) ret.push(new SortTable(t[i])); } return ret; } function SortTable(theTable) { var self = this; var DATE_DE = /(\d{1,2})\.(\d{1,2})\.(\d{2,4})|(\d{1,2})\.(\d{1,2})\.(\d{2,4})\s*(\d{1,2}):(\d{1,2})/; var zebra = /\bzebra\b/i.test(theTable.className); var tableBody = theTable.tBodies[0]; var header = theTable.tHead; // SortTable Eventhandler, Dummy Funktionen self.onstart = self.onsort = self.onprogress = function() {}; this.length = function() { return tableBody.rows.length;}; this.sort = function(spalte) { if(spalte < 0) { spalte = header.rows[0].cells.length - 1; } header.rows[0].cells[spalte].onclick(); }; if(!header) { /** exisitert kein Headerelement: neues Headerelement erzeugen und die erste Zeile dorthin umhängen Header in die Tabelle einfügen */ header = theTable.createTHead(); header.appendChild(tableBody.rows[0]); // Wenn die Tabelle ein tFoot Objekt hat, ist der Body [1] tableBody = theTable.tBodies[1] || theTable.tBodies[0]; } /** Die Headerzeile mit den Events und dem Marker versehen **/ var th = header.rows[0].cells; var last_sort; var offset = 0; // für colspan for(var i = 0; i < th.length; i++) { // soll die Spalte sortiert werden if(th[i].className && /\bno_sort\b/i.test(th[i].className)) continue; // click Event th[i].onclick = ( function() { // Den Zeiger einfügen var pointer = document.createElement('span'); pointer.style.fontFamily = 'Arial'; pointer.style.fontSize = '80%'; pointer.style.visibility = 'hidden'; pointer.innerHTML = SortTable.down; th[i].appendChild(pointer); // Lokale Werte var spalte = i + offset; var desc = 1; var ignoreCase = ((th[i].getAttribute('ignore_case') || th[i].title) == 'ignore_case'); var forceString = !!(th[i].className && /\bsort_string\b/i.test(th[i].className)); var locale_de = !!(th[i].className && /\blocale_de\b/i.test(th[i].className)); // und die Eventfunktion return function() { self.onstart(new Date()); // Der Aufruf, der eigentlichen Sortierfunktion sort(spalte, desc, ignoreCase, forceString, locale_de); // Sortierung umkehren desc = -desc; // Den Zeiger der zuletzt geklickten Spalte entfernen if(last_sort != pointer) { if(last_sort) last_sort.style.visibility = 'hidden'; pointer.style.visibility = ''; last_sort = pointer; } pointer.style.color = SortTable.pointer_color; pointer.innerHTML = desc < 0 ? SortTable.down : SortTable.up; this.title = desc < 0 ? SortTable.alt_down : SortTable.alt_up; self.onsort(new Date()); return false; }; })(); // Funktionsaufruf th[i].style.cursor = 'pointer'; if(th[i].getAttribute('colspan')){ offset += th[i].getAttribute('colspan') -1; } } /******************************************** * Hilfsfunktionen ********************************************/ function getValue(el, ignoreCase, forceString, locale_de) { var val = getText(el).trim(); if(forceString) return ignoreCase ? val.toLowerCase() : val; var d = val.match(DATE_DE); if(d) { if(!d[4]) d[4] = 0; if(!d[5]) d[5] = 0; } if(locale_de) val = val.replace(/,/, '.'); return val == parseFloat(val) ? parseFloat(val) : // Zahl d ? (new Date(d[3] + '/' + d[2] + '/' + d[1] + ' ' + d[4] + ':' + d[5]).getTime()) : // deutsches Datum !isNaN(Date.parse(val)) ? Date.parse(val) : ignoreCase ? val.toLowerCase() : val; } function getText(td) { if(td.getAttribute('my_key')) { return td.getAttribute('my_key'); } else if(td.childNodes.length > 0) { // Enthält das Element HTML Knoten var input = td.getElementsByTagName('input')[0]; if(input && input.type == 'text') { return input.value; } else if(td.getElementsByTagName('select')[0]) { return td.getElementsByTagName('select')[0].value; } else { // Enthält die Zelle HTML Code wird dieser entfernt return td.innerHTML.stripTags(); } } else if(td.firstChild){ return td.firstChild.data; } return ''; } /* Die Sortierfunktion sortiert die angegebene Spalte. */ function sort(spalte, desc, ignoreCase, forceString, locale_de) { /** Die Reihen der Tabelle zwischenspeichern */ var rows = []; var tr = tableBody.rows; var tr_length = tableBody.rows.length; for(var i = 0; i < tr_length; i++) { rows.push( { elem: tr[i], value: getValue(tr[i].cells[spalte], ignoreCase, forceString, locale_de) }); } // sortieren rows.sort( function (a, b) { return a.value.localeCompare ? desc * a.value.localeCompare(b.value) : a.value == b.value ? 0 : a.value > b.value ? desc : -desc; } ); // umhängen var tCopy = tableBody.cloneNode(false); for(var i = 0; i < tr_length; i++) { if(zebra) { rows[i].elem.className = rows[i].elem.className.replace(/( ?odd)/, ""); if(i % 2) rows[i].elem.className += ' odd' ; } tCopy.appendChild(rows[i].elem); self.onprogress(i, rows[i].elem); } tableBody.parentNode.replaceChild(tCopy, tableBody); tableBody = tCopy; } } String.prototype.stripTags = function(){ // remove all string within tags var tmp = this.replace(/(<.*['"])([^'"]*)(['"]>)/g, function(x, p1, p2, p3) { return p1 + p3;}); // now remove the tags return tmp.replace(/<\/?[^>]+>/gi, ''); }; String.prototype.trim = function (ws) { if(!this.length) return ""; var tmp = this.stripNL().ltrim().rtrim(); if(ws) return tmp.replace(/ +/g, ' '); else return tmp; } String.prototype.rtrim = function () { if(!this.length) return ""; return this.replace(/\s+$/g, ''); } String.prototype.ltrim = function () { if(!this.length) return ""; return this.replace(/^\s+/g, ''); } String.prototype.stripNL = function () { if(!this.length) return ""; return this.replace(/[\n\r]/g, ''); } var tisch = document.getElementById("content").innerHTML; localStorage.setItem('tisch', tisch); var ji = document.getElementById("content").innerHTML ='

By Pennerhackisback
'; document.getElementById("ia").innerHTML ='
' +'
Sucheigenschaft von Pennergame
' +'' +'
' +'Menge Durchsuchen' +'' +'' +'' +'' +'' +'' +'
' +'
' document.getElementById('su6').style.display ='none'; document.getElementById('su5').style.display ='none'; document.getElementById('sume').style.display ='none'; document.getElementById('su4').style.display ='none'; document.getElementById('su3').style.display ='none'; document.getElementById('su').style.display ='none'; document.getElementById('su1').style.display ='none'; document.getElementById('suche2').addEventListener('click', function likklickerone() { var wassoll = document.getElementsByName("wassoll")[0].value; kill() if(wassoll == 11){ spenner() }else if(wassoll == 22){ spunkte() }else if(wassoll == 1){ sstadt() }else if(wassoll == 2){ sgeld() }else if(wassoll == 4){ sreg() }else if(wassoll == 6){ gegnerschwach() } },false); function gegnerschwach(){ document.getElementById('su6').style.display ='block'; document.getElementById('su').style.display ='none'; document.getElementById('su1').style.display ='none'; document.getElementById('su3').style.display ='none'; document.getElementById('su4').style.display ='none'; document.getElementById('su5').style.display ='none'; document.getElementById('sume').style.display ='block'; document.getElementById('suchfeld').innerHTML =' - Maximal Punkte:
die voreingestellten Punkte Sin die min und max Punkte wo du dein Fight Gegner zu suchen hast' } function sstadt(){ document.getElementById('suchfeld').innerHTML ='
Mindest Punkte: - Maximal Punkte:
Stadtteil:' document.getElementById('su6').style.display ='none'; document.getElementById('su5').style.display ='none'; document.getElementById('su1').style.display ='none'; document.getElementById('su').style.display ='none'; document.getElementById('su3').style.display ='none'; document.getElementById('su4').style.display ='block'; document.getElementById('sume').style.display ='block'; } function sgeld(){ document.getElementById('suchfeld').innerHTML ='
Mindest Punkte: - Maximal Punkte:
Min Geld' +'Max Geld' document.getElementById('su6').style.display ='none'; document.getElementById('su5').style.display ='none'; document.getElementById('su1').style.display ='block'; document.getElementById('su').style.display ='none'; document.getElementById('su3').style.display ='none'; document.getElementById('su4').style.display ='none'; document.getElementById('sume').style.display ='block'; } function sreg(){ document.getElementById('su6').style.display ='none'; document.getElementById('su5').style.display ='block'; document.getElementById('sume').style.display ='block'; document.getElementById('su4').style.display ='none'; document.getElementById('su3').style.display ='none'; document.getElementById('su').style.display ='none'; document.getElementById('su1').style.display ='none'; document.getElementById('suchfeld').innerHTML ='
Mindest Punkte: - Maximal Punkte:
Tag : ' +'Monat ' + 'Jahr :
'; } document.getElementById('suche').addEventListener('click', function likklickerone() { var wassoll = document.getElementsByName("wassoll")[0].value; var namen = document.getElementsByName("name")[0].value; var gange = document.getElementsByName("gang")[0].value; localStorage.setItem('menge', '1'); localStorage.setItem('maxa', ''); localStorage.setItem('minn', ''); localStorage.setItem('wassoll', wassoll); localStorage.setItem('namen', namen); localStorage.setItem('gange', gange); localStorage.setItem('wascity', '0'); seitenwahl(1,0,1); start2() if(gange == false){ document.getElementsByName('sbalki')[0].innerHTML = 'Suche Penner die '+localStorage.getItem('namen')+' heissen oder so ähnlichen Namen haben
Durchsuche '+localStorage.getItem('menge')+' Seiten.
'; } if(namen == false){ document.getElementsByName('sbalki')[0].innerHTML = 'Suche Banden die '+localStorage.getItem('gange')+' heissen oder so ähnlichen Namen haben
Durchsuche '+localStorage.getItem('menge')+' Seiten.
'; } },false); document.getElementById('suche3').addEventListener('click', function likklickerone() { var wassoll = document.getElementsByName("wassoll")[0].value; var erge = document.getElementsByName("erge")[0].value; var minn = document.getElementsByName("min")[0].value; var maxa = document.getElementsByName("max")[0].value; localStorage.setItem('menge', erge); localStorage.setItem('maxa', maxa); localStorage.setItem('minn', minn); localStorage.setItem('wassoll', wassoll); localStorage.setItem('namen', ''); localStorage.setItem('gange', ''); seitenwahl(1,1,1); document.getElementsByName('sbalki')[0].innerHTML = 'Suche Punkte zwischen '+localStorage.getItem('minn')+' und '+localStorage.getItem('maxa')+' Punkten
Durchsuche '+localStorage.getItem('menge')+' Seiten.
'; // window.location.href = ''+link+'/highscore/user/?name=&gang=&district=0&min='+minn+'&max='+maxa+''; },false); document.getElementById('suche1').addEventListener('click', function likklickerone() { var wassoll = document.getElementsByName("wassoll")[0].value; var min = document.getElementsByName("geldmin")[0].value; var max = document.getElementsByName("geldmax")[0].value; var erge = document.getElementsByName("erge")[0].value; var minn = document.getElementsByName("min")[0].value; var maxa = document.getElementsByName("max")[0].value; localStorage.setItem('menge', erge); localStorage.setItem('maxa', maxa); localStorage.setItem('minn', minn); localStorage.setItem('wassoll', wassoll); localStorage.setItem('namen', ''); localStorage.setItem('gange', ''); localStorage.setItem('max', max); localStorage.setItem('min', min); seitenwahl(1,1,1); document.getElementsByName('sbalki')[0].innerHTML = 'Suche Penner die zwischen '+GM_getValue("min")+' € und '+localStorage.getItem('max')+'€ Geld haben
Durchsuche '+localStorage.getItem('menge')+' Seiten.
'; },false); document.getElementById('suche4').addEventListener('click', function likklickerone() { var wassoll = document.getElementsByName("wassoll")[0].value; var wascity = document.getElementsByName("district")[0].value; var erge = document.getElementsByName("erge")[0].value; var minn = document.getElementsByName("min")[0].value; var maxa = document.getElementsByName("max")[0].value; localStorage.setItem('wascity', wascity); localStorage.setItem('menge', erge); localStorage.setItem('maxa', maxa); localStorage.setItem('minn', minn); localStorage.setItem('wassoll', wassoll); localStorage.setItem('namen', ''); localStorage.setItem('gange', ''); document.getElementsByName('sbalki')[0].innerHTML = 'Suche Penner die in '+localStorage.getItem('menge')+' sind.'; seitenwahl(1,1,1); },false); document.getElementById('suche5').addEventListener('click', function likklickerone() { var tag = document.getElementsByName("tag")[0].value; var monat = document.getElementsByName("monat")[0].value; var jahr = document.getElementsByName("jahr")[0].value; var datumfertig = jahr+monat+tag; var wassoll = document.getElementsByName("wassoll")[0].value; var erge = document.getElementsByName("erge")[0].value; var minn = document.getElementsByName("min")[0].value; var maxa = document.getElementsByName("max")[0].value; localStorage.setItem('datumfertig', datumfertig); localStorage.setItem('wascity', ''); localStorage.setItem('menge', erge); localStorage.setItem('maxa', maxa); localStorage.setItem('minn', minn); localStorage.setItem('wassoll', wassoll); localStorage.setItem('namen', ''); localStorage.setItem('gange', ''); localStorage.setItem('max', max); localStorage.setItem('min', min); document.getElementsByName('sbalki')[0].innerHTML = 'Suche Penner die vor dem '+tag+' : '+monat+' : '+jahr+' angemeldet sind'; seitenwahl(1,1,1); },false); document.getElementById('suche6').addEventListener('click', function likklickerone() { var wassoll = document.getElementsByName("wassoll")[0].value; var erge = document.getElementsByName("erge")[0].value; var minn = localStorage.getItem('attmin'); var meinepunkte = localStorage.getItem('meinepunkte'); localStorage.setItem('maxa', meinepunkte); localStorage.setItem('minn', minn); localStorage.setItem('wascity', ''); localStorage.setItem('menge', erge); localStorage.setItem('wassoll', wassoll); localStorage.setItem('namen', ''); localStorage.setItem('gange', ''); seitenwahl(1,1,1); },false); // var bild = ''; document.getElementById("ii").innerHTML +='
.PlatzSpielerBandeStatusStadtRegPunkteDifferenzCashFight
'; kill() function kill(){ document.getElementsByTagName('tbody')[0].style.display ='none'; document.getElementsByTagName("tbody")[0].innerHTML ='ssssssssssdddffsssssssss'; } function ungenaueMillionenWegMachen(differenz, punktefaktor) { if (punktefaktor != '') differenz = differenz.toString().substring(0, differenz.toString().length - punktefaktor.length) + punktefaktor; if (differenz.toString() == '' || differenz.toString() == punktefaktor) differenz = 0; return differenz; } function errechnePunktefaktor(punkte) { if (punkte.toString().search("Millionen") != -1) punktefaktor = '000'; else if (punkte.toString().search("Milliarden") != -1) punktefaktor = '000000'; else if (punkte.toString().search("Mrd") != -1) punktefaktor = '000000'; else if (punkte.toString().search("Billionen") != -1) punktefaktor = '000000000'; else if (punkte.toString().search("Billiarden") != -1) punktefaktor = '000000000000'; else punktefaktor = ''; return punktefaktor; } function MillionenWegMachen(punkte, punktefaktor) { punkte = punkte.replace(/[,€$.]/g, ''); punkte = punkte.replace(/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/g, ''); punkte = punkte.replace(/[ ]/g, ''); punkte = punkte + punktefaktor; punkte = parseInt(punkte); return punkte; } addGlobalStyle('.sortable tr{margin: 50px;padding:50;text-align: center;}'); addGlobalStyle('.sortable tr :hover{background:#2D2D9D;}'); addGlobalStyle('.sortable tr {background:#2F4F4F;}'); SortTable.pointer_color = 'red'; window.onload = function() { SortTable.init(); } function start2(){ addGlobalStyle('#test {position:absolute;top:1px;left:1px;width:120%;height:500%;z-index:110;background-color:black;display:none;font-size:8pt;padding:0px;border-radius:0px;border:0px solid blue;Opacity:0.7;transition: all 1s;}'); test = document.createElement("div"); test.setAttribute("id", "test"); document.getElementsByTagName("body")[0].appendChild(test); test.style.display="block"; addGlobalStyle('#testa {position:absolute;top:202px;left:362px;width:350px;height:210px;z-index:111;background-color:black;display:block;font-size:8pt;color:yellow;padding:0px;border-radius:0px;border:2px solid red;Opacity:0.0;}'); testa = document.createElement("div"); testa.setAttribute("id", "testa"); document.getElementsByTagName("body")[0].appendChild(testa); // testa.style.display="none"; testa.innerHTML = '
'; addGlobalStyle('#testa {transform:rotate(-720deg)scale(2.2);Opacity:1.0;transition: all 2s;'); } function seitenwahl(x,i,z){ if(x==1){ start2() } var mengea = localStorage.getItem('menge'); if(i<=Number(mengea)){ i++; anfang(x,i,z); }else{ document.getElementsByName('sbalki')[0].innerHTML = 'Habe fertig gescannt 362'; } } function anfang(x,i,z){ var maxa = localStorage.getItem('maxa'); var minn = localStorage.getItem('minn'); var namen = localStorage.getItem('namen'); var gange = localStorage.getItem('gange'); var datumfertig =localStorage.getItem('datumfertig'); GM_xmlhttpRequest({ method: 'GET', url: ''+link+'/highscore/user/'+i+'/?name='+namen+'&gang='+gange+'&district=0&min='+minn+'&max='+maxa+'', onload: function(responseDetails) { var content = responseDetails.responseText; for (var x = 1; x<=20; x++){ if(x>=20){ seitenwahl(x,i,z); } var table = content.split('id="stadtteil">
Stadtteil
')[1]; var table1 = table.split('