Informator

Dodatkowe informacje o zgłoszeniach w panelu.

目前為 2014-06-07 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name        	Informator
// @namespace   	http://www.wykop.pl/ludzie/Deykun
// @description 	Dodatkowe informacje o zgłoszeniach w panelu.
// @author      	Deykun
// @icon        	http://c3201142.cdn02.imgwykop.pl/comment_PwBob1lVqPIGUGJRBn9kSGZhUVyj1CeA.gif
// @include	    	htt*wykop.pl/naruszenia/moje*
// @include	    	htt*wykop.pl/naruszenia/moje*
// @include	    	htt*wykop.pl/ustawienia*
// @include	    	htt*wykop.pl/settings*
// @include	    	htt*wykop.pl/ustawienia/
// @include	    	htt*wykop.pl/ustawienia
// @exclude		htt*wykop.pl/ustawienia/edytuj/
// @exclude		htt*wykop.pl/ustawienia/haslo/
// @exclude		htt*wykop.pl/ustawienia/email/
// @exclude		htt*wykop.pl/ustawienia/avatar/
// @exclude		htt*wykop.pl/ustawienia/background/
// @exclude		htt*wykop.pl/ustawienia/sesje/
// @exclude		htt*wykop.pl/ustawienia/czarne-listy/
// @exclude		htt*wykop.pl/ustawienia/listy-ulubionych/
// @version     	1.5.1
// @grant       	none
// @run-at		document-end
//
// Podziękowania i inspiracje.
// Kod dodawania inspirowany Sprawdzatorem Dreszczyka.
// Kod zapisywania danych inspirowany Automatycznym trybem nocnym Kamdza.
//
// ==/UserScript==

var main = function () {
//Ikony: logo, ziel, czer, nieb
var inicon = ['http://c3201142.cdn03.imgwykop.pl/comment_ULVNdabLvaJFoNIncxLt069s2daYNTVy.jpg','http://c3201142.cdn03.imgwykop.pl/comment_oVVceNrf4sbOPsHTnFQEqmSyABh25VXs.jpg','http://c3201142.cdn03.imgwykop.pl/comment_mR09NQ7smlpnKcqgoPDPTNirXUJkEU2W.jpg', 'http://c3201142.cdn03.imgwykop.pl/comment_usGFEDKBTE9OchcFfd5K3xSGECcyy6Vj.jpg', 10]

$(document).ready(function($) {
    //ustawienia
    var inf1 = (localStorage.getItem('inf1_dane') || 'off') == 'on' ? true : false; //wyświetlanie %
	var inf2 = (localStorage.getItem('inf2_dane') || 'off') == 'on' ? true : false; //wyświetlanie tylko kwadrarów
	var inf3 = (localStorage.getItem('inf3_dane') || 'off') == 'on' ? true : false; //prowadzenie statystyk
	
    //Strona z naruszeniami
    if (document.location.pathname.match('/naruszenia/'))
		{
        //Liczba zgłoszeń (liczy obrazki)
    	var popr = $('img[src="http://s3.cdn03.imgwykop.pl/static/wykoppl/img/market/accepted.png"]').size();
    	var niep = $('img[src="http://s3.cdn03.imgwykop.pl/static/wykoppl/img/market/banned.png"]').size();
    	var ocze = $('img[src="http://s3.cdn03.imgwykop.pl/static/wykoppl/img/market/waiting.png"]').size();
			
		//Wersja awaryjna
		if (popr == 0 && niep == 0 && ocze == 0) {
			popr = $('img[src="http://s2.cdn02.imgwykop.pl/static/wykoppl/img/market/accepted.png"]').size();
			niep = $('img[src="http://s2.cdn02.imgwykop.pl/static/wykoppl/img/market/banned.png"]').size();
			ocze = $('img[src="http://s2.cdn02.imgwykop.pl/static/wykoppl/img/market/waiting.png"]').size();
			
			//Wersja awaryjna
			if (popr == 0 && niep == 0 && ocze == 0) {
			popr = $('img[src="http://s3.wykop.pl/static/wykoppl/img/market/accepted.png"]').size();
			niep = $('img[src="http://s3.wykop.pl/static/wykoppl/img/market/banned.png"]').size();
			ocze = $('img[src="http://s3.wykop.pl/static/wykoppl/img/market/waiting.png"]').size();
			
			//Wersja awaryjna
			if (popr == 0 && niep == 0 && ocze == 0) {
			popr = $('img[src="http://s2.wykop.pl/static/wykoppl/img/market/accepted.png"]').size();
			niep = $('img[src="http://s2.wykop.pl/static/wykoppl/img/market/banned.png"]').size();
			ocze = $('img[src="http://s2.wykop.pl/static/wykoppl/img/market/waiting.png"]').size();}}}
			
		
		
		
		//Komunikat z informacją o braku danych
    	if (popr == 0 && niep == 0 && ocze == 0){
			$('a[href="http://www.wykop.pl/naruszenia/closed/"]').after('<a href="http://www.wykop.pl/wiadomosc-prywatna/konwersacja/Deykun" title="Jeżeli widzisz zgłoszenia, a nie są one podliczone to możesz taki błąd zgłosić w prywatnej wiadomości klikając ten komunikat. :)"><span><img height="8px" src="'+ inicon[0] +'" title="i"> Brak zgłoszeń</a>');}
        else {			
			//Dane w procentach
			var suma = popr + niep;
			if (suma != 0) 
				{ var infpp = parseInt((popr/suma)*100);
				var infnpnp = parseInt((niep/suma)*100);}
			else { var infpp = 0; var infnpnp = 0;}
				
            var poprawne = parseFloat((popr/suma)*100).toFixed(1);
            var niepoprawne = parseFloat((niep/suma)*100).toFixed(1);
			
			if (inf1 == true)
				{ var poprpokaz = poprawne +'%';
				var nieppokaz = niepoprawne +'%';}
			else { var poprpokaz = popr; var nieppokaz = niep;}
			
			//Podpisy
			var infp = 'Prawidłowych zgłoszeń:';
			var infnp = 'Nieprawidłowych zgłoszeń:';
			var info = 'Oczekujących zgłoszeń:';
			
			var titpop = 'title="Prawidłowych zgłoszeń: '+ popr +' czyli '+ poprawne +'%."';
			var titnie = 'title="Nieprawidłowych zgłoszeń: '+ niep +' czyli '+ niepoprawne +'%."';
			var titocz = 'title="Oczekujących zgłoszeń: '+ ocze +' przy '+ suma +' rozpatrzonych."';
            
			//Statystyki
			if (inf3 == true) {
				Date.prototype.getWeek = function() {
				var onejan = new Date(this.getFullYear(),0,1);
				return Math.ceil((((this - onejan) / 86400000) + onejan.getDay()+1)/7);
				} 
				var inweek = parseInt((new Date()).getWeek()); //obecny tydzień
				var inday = parseInt((new Date()).getDay()); //obecny dzień
			
				var inlastweek = parseInt(localStorage.getItem('informator.lastweek')) || 0; //tydzień ostatniej wizyty
				var inlastday = parseInt(localStorage.getItem('informator.lastday')) || 0; //dzien ostatniej wizyty
				
				var inf4 = (localStorage.getItem('inf4_dane') || 'off') == 'on' ? true : false; //pokazywanie zmian
				
				//Pokazywanie zmian statystyk
				if (inf4 == true) {		
					var inlapop = parseInt(localStorage.getItem('informator.inlapop')) || 0; //ostatni stan
					var inlanpop = parseInt(localStorage.getItem('informator.inlanpop')) || 0;
					
					var deltapop = popr - inlapop;
					var deltanpop = niep - inlanpop;
					
					if (deltapop != 0){
						if (deltapop > 0) {deltapop = '+'+ deltapop;}
						var poprpokaz = '('+ deltapop +') '+ poprpokaz;}
					
					if (deltanpop != 0){
						if (deltanpop > 0) {deltanpop = '+'+ deltanpop;}
						var nieppokaz = nieppokaz +' ('+ deltanpop +')';}}

				//Najlepsze
				var inbspop = parseInt(localStorage.getItem('informator.inbspop')) || 0; //stan najlepszych
				var inbsnpop = parseInt(localStorage.getItem('informator.inbsnpop')) || 0;
				var inbssuma = inbspop+inbsnpop;
				
				if (suma >= inbssuma){
					if (inbssuma != 0) {var inbspro = parseFloat((inbspop/inbssuma)*100).toFixed(1);}
					else {var inbspro = 0;}
					
					if (parseFloat(poprawne) >= parseFloat(inbspro)) {
						localStorage.setItem('informator.inbspop', popr);
						localStorage.setItem('informator.inbsnpop', niep);}}
					
				//Zapis obencego statnu
				localStorage.setItem('informator.inlapop', popr);
				localStorage.setItem('informator.inlanpop', niep);
				
				//Średnie
				if (inweek == (inlastweek+1) && inday >= inlastday) {
					var instpop = parseInt(localStorage.getItem('informator.instpop')) || 0; //stan statystyk
					var instnpop = parseInt(localStorage.getItem('informator.instnpop')) || 0;
							
					var instpop = popr + instpop;
					var instnpop = niep + instnpop;
					
					localStorage.setItem('informator.instpop', instpop);
					localStorage.setItem('informator.instnpop', instnpop);
					localStorage.setItem('informator.lastweek', inweek);
					localStorage.setItem('informator.lastday', inday);}
				else if (inweek != inlastweek || inlastweek == 0){
					var instpop = parseInt(localStorage.getItem('informator.instpop')) || 0; //stan statystyk
					var instnpop = parseInt(localStorage.getItem('informator.instnpop')) || 0;
										
					var instpop = popr + instpop;
					var instnpop = niep + instnpop;
					
					localStorage.setItem('informator.instpop', instpop);
					localStorage.setItem('informator.instnpop', instnpop);
					localStorage.setItem('informator.lastweek', inweek);
					localStorage.setItem('informator.lastday', inday);}}
	
        	if (ocze == 0) {
				if (inf2 == true) {	
					$('a[href="http://www.wykop.pl/naruszenia/closed/"]').after('<a href="http://www.wykop.pl/ustawienia/" title="Strona ustawień"><span >' + poprpokaz + ' <img height="'+ inicon[4] +'px" width="'+ (infpp+1) +'px" '+ titpop +' src="'+ inicon[1] +'"><img height="'+ inicon[4] +'px" width="'+ (infnpnp+1) +'px" '+ titnie +' src="'+ inicon[2] +'"> ' + nieppokaz + '</span></a>');} //bezpodpisu
				else {	
					$('a[href="http://www.wykop.pl/naruszenia/closed/"]').after('<a href="http://www.wykop.pl/ustawienia/" title="Strona ustawień"><span>'+infp+' ' + poprpokaz + ' <img height="'+ inicon[4] +'px" '+ titpop +' src="'+ inicon[1] +'"> '+ infnp +' ' + nieppokaz + ' <img height="'+ inicon[4] +'px" '+ titnie +' src="'+ inicon[2] +'"></span></a>');}}
        	else if (suma != 0){
				if (inf2 == true) {					
					$('a[href="http://www.wykop.pl/naruszenia/closed/"]').after('<a href="http://www.wykop.pl/ustawienia/" title="Strona ustawień"><span>' + poprpokaz + ' <img height="'+ inicon[4] +'px" width="'+ (infpp+1) +'px" '+ titpop +' src="'+ inicon[1] +'"><img height="'+ inicon[4] +'px" width="'+ (infnpnp+1) +'px" '+ titnie +' src="'+ inicon[2] +'"> ' + nieppokaz + ' <img height="'+ inicon[4] +'px" '+ titocz +' src="'+ inicon[3] +'"> ' + ocze + '</span></a>');}
				else {	
					$('a[href="http://www.wykop.pl/naruszenia/closed/"]').after('<a href="http://www.wykop.pl/ustawienia/" title="Strona ustawień"><span>'+infp+' ' + poprpokaz + ' <img height="'+ inicon[4] +'px" '+ titpop +' src="'+ inicon[1] +'"> '+infnp+' ' + nieppokaz + ' <img height="'+ inicon[4] +'px" '+ titnie +' src="'+ inicon[2] +'"> '+info+' ' + ocze + ' <img height="'+ inicon[4] +'px" '+ titocz +' src="'+ inicon[3] +'"></span></a>');}}
					
			else {
				if (inf2 == true) {
					$('a[href="http://www.wykop.pl/naruszenia/closed/"]').after('<a href="http://www.wykop.pl/ustawienia/" title="Strona ustawień"><span><img height="'+ inicon[4] +'px" '+ titocz +' src="'+ inicon[3] +'"> ' + ocze + '</span></a>');}
				else {
					$('a[href="http://www.wykop.pl/naruszenia/closed/"]').after('<a href="http://www.wykop.pl/ustawienia/" title="Strona ustawień"><span>Brak rozpatrzonych zgłoszeń. '+info+' ' + ocze + ' <img height="'+ inicon[4] +'px" '+ titocz +' src="'+ inicon[3] +'"></span></a>');}}}}
    	
    //Strona ustawień
	if (document.location.pathname.match('/ustawienia/')) {
		var inf4 = (localStorage.getItem('inf4_dane') || 'off') == 'on' ? true : false; //informacje
        var nick = $('.avatar a').attr('title');
		
		if (inf3 == true) {
		var infsize = 8; //wysokość wykresów
		
		//Obecnie:
		var inlapop = parseInt(localStorage.getItem('informator.inlapop')) || 0;
		var inlanpop = parseInt(localStorage.getItem('informator.inlanpop')) || 0;
		var suma = parseInt(inlapop+inlanpop);
           
		if (suma != 0) {
			var inlapro = parseFloat((inlapop/suma)*100).toFixed(1); var inlapops = parseInt((inlapop/suma)*150);
			var inlanpops = 150 - inlapops;
			
			var infplot0 = '<td style="text-align:right; padding-right:5px;">Obecnie: </td><td><img height="'+ infsize +'px" width="'+ inlapops +'px" title="Prawidłowych zgłoszeń: '+ inlapop +'" src="'+ inicon[1] +'"><img height="'+ infsize +'px" width="'+ inlanpops +'px" title="Nieprawidłowych zgłoszeń: '+ inlanpop +'" src="'+ inicon[2] +'"></td><td>'+ inlapro +'%</td></tr><tr>';}
		else {var infplot0 = '';}
			
		//Średnio:
		var instpop = parseInt(localStorage.getItem('informator.instpop')) || 0;
		var instnpop = parseInt(localStorage.getItem('informator.instnpop')) || 0;
		var suma = parseInt(instpop+instnpop);
            
			if (suma != 0) {
				var instpro = parseFloat((instpop/suma)*100).toFixed(1); var instpops = parseInt((instpop/suma)*150);
				var instnpops = 150 - instpops;
				
				var infplot1 = '<td style="font-weight:bold; text-align:right; padding-right:5px;">Średnio: </td><td><img height="'+ infsize +'px" width="'+ instpops +'px" title="Prawidłowych zgłoszeń: '+ instpop +'" src="'+ inicon[1] +'"><img height="'+ infsize +'px" width="'+ instnpops +'px" title="Nieprawidłowych zgłoszeń: '+ instnpop +'" src="'+ inicon[2] +'"></td><td>'+ instpro +'% z '+ suma +' zgłoszeń</td></tr><tr>';}
			else {var infplot1 = '';}
				
		//Rekord:
		var inbspop = parseInt(localStorage.getItem('informator.inbspop')) || 0;
		var inbsnpop = parseInt(localStorage.getItem('informator.inbsnpop')) || 0;
		var suma = parseInt(inbspop+inbsnpop);
		
		if (suma != 0) {
			var inbspro = parseFloat((inbspop/suma)*100).toFixed(1); var inbspops = parseInt((inbspop/suma)*150);
			var inbsnpops = 150 - inbspops;
			
			var infplot2 = '<td style="text-align:right; padding-right:5px;">Rekord: </td><td><img height="'+ infsize +'px" width="'+ inbspops +'px" title="Prawidłowych zgłoszeń: '+ inbspop +'" src="'+ inicon[1] +'"><img height="'+ infsize +'px" width="'+ inbsnpops +'px" title="Nieprawidłowych zgłoszeń: '+ inbsnpop +'" src="'+ inicon[2] +'"></td><td>'+ inbspro +'% z '+ suma +' zgłoszeń</td></tr><tr>';}
		else {var infplot2 = '';}			
		
		//Komunikat o braku danych
		if (infplot0 == '' && infplot1 == '' && infplot2 == '') {
			var infstat1 = '><div style="padding-left:25px; font-size:x-small;" class="row"><p style="padding-left:25px; ">Brak danych. Odwiedź panel zgłoszeń by dodać ewentualne zgłoszenia.</p><p style="padding-left:25px;">><div padding-left:25px; class="row"><input id="inf4" name="inf4" class="checkbox" type="checkbox" value="on" ' + (inf4 ? 'checked="checked"' : '') + '><label class="inline" for="inf4"> pokazuj zmiany od ostatniej wizyty na stronie naruszeń</lable></div></div>';}
		else {
			var infstat2 = infplot0+infplot1+infplot2;
			var infstat1 = '<p><table style="font-size:x-small;"><tr><td width="70px"></td><td width="155px">Rozkład ocen</td><td width="100px"></td></tr><tr>'+infstat2+'</table></p><div style="padding-left:25px;" class="row"><input id="inf4" name="inf4" class="checkbox" type="checkbox" value="on" ' + (inf4 ? 'checked="checked"' : '') + '><label class="inline" for="inf4"> pokazuj zmiany od ostatniej wizyty na stronie naruszeń</label></div>';}}
		
		//Statystyki wylaczone
		else {
		var infstat1 = '<div style="padding-left:25px;" class="row"><input id="inf4" name="inf4" class="checkbox" type="checkbox" value="off" ' + (inf4 ? 'checked="checked"' : '') + ' disabled="disabled"><label class="inline" for="inf4"> pokazuj zmiany od ostatniej wizyty na stronie naruszeń</label></div>';}
		
		//panel informatora
		$('div[class="mark-bg space"]').before('<fieldset><a title="Strona dodatku" href="http://www.wykop.pl/dodatki/pokaz/409/"><h4>Informator</a></h4><div class="space"><p></p><div class = "row"><input id="inf3" name="inf3" class="checkbox" type="checkbox" value="on" ' + (inf3 ? 'checked="checked"' : '') + ' onclick="this.form.elements[&#039inf4&#039].disabled = !this.checked"><label class="inline" for="inf3"> prowadź statystyki rozpatrzonych zgłoszeń</label></p>'+infstat1+'<p></p><input id="inf1" name="inf1" class="chk-box" type="checkbox" value="on" ' + (inf1 ? 'checked="checked"' : '') + '></input><label class="inline" for="inf1"> rozpatrzone zgłoszenia w procentach</label><p></p><div class="row"><input id="inf2" name="inf2" class="checkbox" type="checkbox" value="on" ' + (inf2 ? 'checked="checked"' : '') + '></input><label class="inline" for="inf2"> rozkład ocen bez podpisów pokazany na prostokątach</label></div></div><p style="font-size:x-small;" ><br>Penel zgłoszeń możesz odnaleźć <a title="zakładka zgłoszeń" href="http://www.wykop.pl/naruszenia/moje/">tutaj</a> natomiast mininalistyczną wersje Informatora bez statystyk <a title="Strona dodatku" href="http://userscripts.org/scripts/show/183053">tu</a>.</p></div></fieldset>');
		
		//inf1 - wyświetlanie %
		if ($('#inf1').is(':checked')){
			$('#info1').attr('disabled', true);}
		
		$('#inf1').click(function () {
			if (this.checked) {
				$('#info1').attr('disabled', true);}
			else {
				$('#info1').removeAttr('disabled');
				$('#info1').attr('checked', false);}});
		
		$(document).delegate('form', 'submit', function () {
			localStorage.setItem('inf1_data', $('input[name*="user"][name!="user[info1]"]').serialize());
			if ($('#inf1').is(':checked')) {localStorage.setItem('inf1_dane', $('#inf1').val());}
			else {localStorage.setItem('inf1_dane', 'off');}});
		
		//inf2 - wyświetlanie tylko kwadratów
		if ($('#inf2').is(':checked')){
			$('#info2').attr('disabled', true);}
		
		$('#inf2').click(function () {
			if (this.checked) {
				$('#info2').attr('disabled', true);}
			else {
				$('#info2').removeAttr('disabled');
				$('#info2').attr('checked', false);}});	
		
		$(document).delegate('form', 'submit', function () {
			localStorage.setItem('inf2_data', $('input[name*="user"][name!="user[info2]"]').serialize());
			if ($('#inf2').is(':checked')) {localStorage.setItem('inf2_dane', $('#inf1').val());}
			else {localStorage.setItem('inf2_dane', 'off');}});
		
		//inf3 - statystyki
		if ($('#inf3').is(':checked')){
			$('#info3').attr('disabled', true);}
		
		$('#inf3').click(function () {
			if (this.checked) {
				$('#info3').attr('disabled', true);}
			else {
				$('#info3').removeAttr('disabled');
				$('#info3').attr('checked', false);}});
		
		$(document).delegate('form', 'submit', function () {
			localStorage.setItem('inf3_data', $('input[name*="user"][name!="user[info3]"]').serialize());
			if ($('#inf3').is(':checked')) {localStorage.setItem('inf3_dane', $('#inf3').val());}
			else {localStorage.setItem('inf3_dane', 'off');}});}
		
		//inf4 - statystyki w panelu zakladek
		if (inf3 == true){
			if ($('#inf4').is(':checked')){
				$('#info4').attr('disabled', true);}
			
			$('#inf4').click(function () {
				if (this.checked) { $('#info4').attr('disabled', true);}
				else {
					$('#info4').removeAttr('disabled');
					$('#info4').attr('checked', false);}});
			
			$(document).delegate('form', 'submit', function () {
				localStorage.setItem('inf4_data', $('input[name*="user"][name!="user[info4]"]').serialize());
				if ($('#inf4').is(':checked')) {localStorage.setItem('inf4_dane', $('#inf3').val());}
				else {localStorage.setItem('inf4_dane', 'off');}});}});}

var script = document.createElement('script');
script.textContent = '(' + main.toString() + ')();';
document.body.appendChild(script)

window.G_wait = function G_wait() {
  if(typeof unsafeWindow.jQuery == 'undefined') {window.setTimeout(G_wait,100);}
  else {$ = unsafeWindow.jQuery; start_fancy();}}