// ==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['inf4'].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();}}