نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.

  • فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلید‌های Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-R)
  • گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانه‌های اپل مکینتاش کلید‌های ⌘-Shift-R)
  • اینترنت اکسپلورر/ Edge: کلید Ctrl را نگه‌دارید و روی دکمهٔ Refresh کلیک کنید، یا کلید‌های Ctrl-F5 را با هم فشار دهید
  • اپرا: Ctrl-F5 را بفشارید.
// 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') == "ویژه:Massblock") {
    document.title = "Krimpet's mass block tool";
    document.getElementById("content").innerHTML = "<h1 class=\"firstHeading\">Krimpet's mass block tool</h1><span style=\"color:red\">MESS SOMETHING UP WITH THIS, AND <em>YOU</em> TAKE THE BLAME, BUCKO.</span><br /><br />List of IPs to block, one on each line please:<br><textarea id=\"iplist\" columns=\"24\" rows=\"10\"></textarea><br /><br />Expiry: <input type=\"text\" value=\"1 year\" id=\"expiry\"><br />Reason: <input type=\"text\" value=\"[[w:open proxy|open proxy]] or [[w:zombie computer|zombie]] ([[m:WM:OP|more info]])\" id=\"reason\"><br /><input type=\"checkbox\" id=\"ao\" /> Anon only<br /><input type=\"checkbox\" id=\"acb\" checked=\"checked\" /> Prevent account creation<br /><br />Blocks/min: <input type=\"text\" value=\"10\" id=\"epm\"><br /><button onclick=\"massblock2()\">Block IPs</button> <button onclick=\"massblock4()\">Abort</button><div style=\"z-index:-1;position:relative;top:0px;left:0px\"><iframe name=\"blockframe0\" width=\"1px\" height=\"1px\"></iframe><iframe name=\"blockframe1\" width=\"1px\" height=\"1px\"></iframe><iframe name=\"blockframe2\" width=\"1px\" height=\"1px\"></iframe><iframe name=\"blockframe3\" width=\"1px\" height=\"1px\"></iframe><iframe name=\"blockframe4\" width=\"1px\" height=\"1px\"></iframe><iframe name=\"blockframe5\" width=\"1px\" height=\"1px\"></iframe></div>";
  } 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 BlocksToDo;
var BlocksToDoIndex;
var BlocksToDoInterval = 0;
var BlockFrame;
function massblock2() {
  if (!parseFloat(document.getElementById("epm").value)) return;
  BlocksToDo = [];

  iplist = document.getElementById("iplist").value.split("\n");
  for (i=0;i<iplist.length;i++) {
    BlocksToDo[i] = iplist[i].split(":")[0];
  }

  mbcode = "massblock3(BlocksToDo[BlocksToDoIndex++]);if (BlocksToDoIndex >= BlocksToDo.length) massblock4();";

  BlocksToDoIndex = BlockFrame = 0;
  eval(mbcode);
  BlocksToDoInterval = 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" + BlockFrame++].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 (BlockFrame == 6) BlockFrame = 0;
}

function massblock4() {
  clearInterval(BlocksToDoInterval);
}
 
$(massblock);

// [[رده:ابزارهای ویکی‌پدیا|Massblock.js]]