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:  Block IPs Abort      <iframe name=\"blockframe5\" width=\"1px\" height=\"1px\"> "; } 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<iplist.length;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);