User:DerHexer/rollback.js

// originally from User:DerHexer

// get URL parameters (used for page type variables)

var UrlParameters = new Array ();

readparams();

function readparams() {

var asReadInUrlParameters;

var asReadInUrlParameter;

// Get URL parameters

asReadInUrlParameters = location.search.substring(1, location.search.length).split("&");

for (i = 0; i < asReadInUrlParameters.length; i++) {

asReadInUrlParameter = asReadInUrlParameters[i].split("=");

UrlParameters[decodeURIComponent(asReadInUrlParameter[0])] = decodeURIComponent(asReadInUrlParameter[1]);

}

}

if(!usersignature) var usersignature = '\~\~\~\~' //standard signature

if(!automaticblock) var automaticblock=false;

if(!automaticwarning) var automaticwarning=false;

function fillActionPageRevert() {

if (UrlParameters["blockreason"] > "" && UrlParameters["blockduration"] > "") {

document.forms["blockip"].wpBlockReason.value = UrlParameters["blockreason"];

document.forms["blockip"].wpBlockOther.value = UrlParameters["blockduration"];

var blocktime = UrlParameters["blockduration"];

var isBlocked = UrlParameters["title"].replace(/Special:Block\//, '');

if (isBlocked.search(/\d+\.\d+\.\d+\.\d+/) == -1) {

if (prompt('Are you sure to block, ' + isBlocked + ' ?','ja')) {

var newurl = "http://en.wikipedia.org/w/index.php?title=User:" + isBlocked + "&action=edit&addtemplate=2";

if(automaticblock) { window.setTimeout(function() { document.forms["blockip"].wpBlock.click(); }, 100); }

}

} else {

var newurl = "http://en.wikipedia.org/w/index.php?title=User_talk:" + isBlocked + "&action=edit&addtemplate=1&blockduration=" + blocktime;

if(automaticblock) { window.setTimeout(function() { document.forms["blockip"].wpBlock.click(); }, 100);}

}

if(automaticblock) { if ((UrlParameters["blockduration"] != 'infinite') || (isBlocked.search(/\d+\.\d+\.\d+\.\d+/) == -1)) { window.setTimeout(function() { location.href = newurl; }, 1000); } }

}

if (UrlParameters["diff"] > "") {

function searchRollbackLink() {

var tds = document.getElementsByTagName("td");

for (var i=0; i

var td = tds[i];

if (td.className != "diff-ntitle") continue;

var as = td.getElementsByTagName("a");

for (var j=0; j

var a = as[j];

if (!/.*action=rollback.*/(a.href)) continue;

var newlink = document.createElement('a');

a.setAttribute('accesskey', "s");

newlink.setAttribute('href', a.href);

var EditTextNode = document.createTextNode("normal rollback");

newlink.appendChild(EditTextNode);

as[j].parentNode.insertBefore( newlink, as[j].nextSibling );

as[j].parentNode.insertBefore( document.createTextNode(' | '), as[j].nextSibling );

return a;

}

}

return tds;

}

function RollAndSpam(rolluri) {

location.href = rolluri;

var backrolled = rolluri.split("from=")[1].split("&token=")[0];

var vandalizedpage = mw.config.get('wgPageName');

var uri = "http://en.wikipedia.org/w/index.php?title=User talk:" + backrolled + "&vandalizedpage=" + vandalizedpage + "&action=edit&spam=1";

window.setTimeout(function() { location.href = uri; }, 500);

}

var revlink = searchRollbackLink();

revlink.onclick = function() { RollAndSpam(revlink.href); return false; }

}

if ( (UrlParameters["spam"] > "") && (UrlParameters["vandalizedpage"] > "") ) {

document.editform.wpMinoredit.checked=true;

var splitted = document.forms["editform"].wpTextbox1.value.split("