User:Kanonkas/massblock.js
// Mass block tool by User:Krimpet
// After adding to your monobook.js, navigate to Special:Massblock to use the tool.
function getParameter(p) {
var re = new RegExp('&'+p+'=([^&]*)','i');
var c = window.location.search;
return unescape((c=c.replace(/^\?/,'&').match(re)) ?c=c[1] :c="");
}
function massblock() {
if (mw.config.get('wgPageName') == "Special:Massblock") {
document.title = "Krimpet's mass block tool";
document.getElementById("content").innerHTML = "
Krimpet's mass block tool
MESS SOMETHING UP WITH THIS, AND YOU TAKE THE BLAME, BUCKO.List of IPs to block, one on each line please:
Expiry:
Reason:
Anon only
Prevent account creation
Blocks/min:
";
} else if (document.location.search.match("__MASSBLOCK__")) {
document.getElementById("wpAnonOnly").checked = getParameter("ao") == "1";
document.getElementById("wpCreateAccount").checked = getParameter("acb") == "1";
document.getElementById("mw-bi-other").value = getParameter("expiry").replace("+"," ","g");
document.getElementById("mw-bi-reason").value = getParameter("reason").replace("+"," ","g");
setTimeout("document.getElementById(\"blockip\").submit()", 500);
}
}
var wgBlocksToDo;
var wgBlocksToDoIndex;
var wgBlocksToDoInterval = 0;
var wgBlockFrame;
function massblock2() {
if (!parseFloat(document.getElementById("epm").value)) return;
wgBlocksToDo = new Array();
iplist = document.getElementById("iplist").value.split("\n");
for (i=0;i wgBlocksToDo[i] = iplist[i].split(":")[0]; } mbcode = "massblock3(wgBlocksToDo[wgBlocksToDoIndex++]);if (wgBlocksToDoIndex >= wgBlocksToDo.length) massblock4();"; wgBlocksToDoIndex = wgBlockFrame = 0; eval(mbcode); wgBlocksToDoInterval = setInterval(mbcode, (60 / parseFloat(document.getElementById("epm").value)) * 1000); } function massblock3(ipToBlock) { if (ipToBlock + "" == "undefined") return; iplistobj = document.getElementById("iplist"); if (iplistobj.value.indexOf("\n") == -1) iplistobj.value = ""; iplistobj.value = iplistobj.value.substring(iplistobj.value.indexOf("\n") + 1); if (ipToBlock == "") return; frames["blockframe" + wgBlockFrame++].location.href = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=Special:Blockip&ip=" + ipToBlock + "&__MASSBLOCK__=1&expiry=" + document.getElementById("expiry").value + "&reason=" + document.getElementById("reason").value + "&ao=" + (document.getElementById("ao").checked ? "1" : "0") + "&acb=" + (document.getElementById("acb").checked ? "1" : "0"); if (wgBlockFrame == 6) wgBlockFrame = 0; } function massblock4() { clearInterval(wgBlocksToDoInterval); } $(massblock);