Järjestelmäviesti:Abusefilter.js

Wikipediasta
Siirry navigaatioon Siirry hakuun

Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.

  • Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
  • Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
  • Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
  • Opera: Paina Ctrl-F5.
/*
Pienoisohjelma lisää "näytä diffeinä" -painikkeen väärinkäyttösuodattimen logisivulle.
Ylläpitäjä: Zache

*/
function XMLHttpRequestWrapper20110923() {  
  if (window.XMLHttpRequest) 
  {     
     return new XMLHttpRequest();   
  } 
  else if (window.ActiveXObject) 
  {    
      return new ActiveXObject('Microsoft.XMLHTTP') ; 
  } 
  else 
  {     
     _error("Could not create XMLHttpRequest on this browser");     
     return null;   
  }
}
 
 
 
function abusefilter_addDiffElement(newdiv, targetdiv)
{
 
    if (targetdiv)
    {
        targetdiv.appendChild(newdiv);
    }
    else
    {
        document.body.appendChild(newdiv);
    }
}
 
function abusefilter_loadDiff() {
 
   mw.loader.load('//fi.wikipedia.org/w/load.php?modules=mediawiki.action.history.diff&only=styles&skin=vector', 'text/css' );
 
   var url=diffurls.shift();
   if (!url) return;
   if (urlcounter>maxurlcounter) {
         var newdiv=document.createElement('div');
         var str="<h5 style='border:1px solid silver; margin:1em; text-align:center'>Maksimimäärä kerralla näytettäviä muokkauksia tuli täyteen. <a  onclick='loadmorediffs();'>Näytä lisää?</a></h5>";
         newdiv.innerHTML=str;
        abusefilter_addDiffElement(newdiv);
        return;
   }
   urlcounter++;
 // currenturl=url.replace("action=render", "action=view");
//  url+="&action=render";
 
  var http = XMLHttpRequestWrapper20110923();
  http.open("GET", url, true);
 
  http.onreadystatechange = function() {
    //Call a function when the state changes.
 
    if (http.readyState == 4 && http.status == 200) {
 
         var newDiv=document.createElement('div');
         newDiv.style.borderBottom = "solid black 0.2em";      
         newDiv.style.marginBottom = "0.5em";     
 
 
         tmp=http.responseText.split('<table', 2);      
         tmp=tmp[1].split("</table", 2) ;
 
         table='<table style="margin-bottom:1em" ' + tmp[0] + '</table>';
         newDiv.innerHTML=table;
 
         abusefilter_addDiffElement(newDiv, rowelements.shift());
         parsedurlcounter++;
 
         timer=setTimeout("abusefilter_loadDiff()",500);
     }
  }
http.send();
}
 
 
function abusefilter_parseAbuseLog()
{
 
 
   var lists=document.getElementsByTagName("ul");
   var rows=lists[0].getElementsByTagName("li");
     for (var i = 0; i < rows.length; i++)
   {
       var links=rows[i].getElementsByTagName("a");
       if (links[5].href.search("fi.wikipedia.org/wiki/Toiminnot:V%C3%A4%C3%A4rink%C3%A4ytt%C3%B6loki/")>0)
       {
          diffurls.push(links[5].href);
          rowelements.push(rows[i]);
       }
       else if (links[6].href.search("fi.wikipedia.org/wiki/Toiminnot:V%C3%A4%C3%A4rink%C3%A4ytt%C3%B6loki/")>0)
       {
          diffurls.push(links[6].href);
          rowelements.push(rows[i]);
       }
       else
       {
          alert(links[5].href);
       }
   }
   abusefilter_loadDiff();  
}
 
 
function abusefilter_addAbuseFilterDiffButton()
{ 
  var e=$(".mw-htmlform-submit-buttons");

  var button = $("<button style='padding-left:0.5em' id='edithistorylistbutton' type='button'>Näytä diffeinä</button>");
  button.click(abusefilter_parseAbuseLog);

  if (e.length)
    e.append(button);
  else
    $("body").append(button);
}
 
if (mw.config.get("wgCanonicalSpecialPageName")=="AbuseLog" ) { 
  var rowelements=Array();
  var diffurls=Array();
  var urlcounter=0;
  var maxurlcounter=50;
  var parsedurlcounter=0;

  $(abusefilter_addAbuseFilterDiffButton);
}