User:Timotheus Canens/massunblock.js

///Adapted from User:Animum/massdelete.js function doMassUnblock { document.getElementById("wpMassUnblockSubmit").disabled = true; var users = document.getElementById("wpMassUnblockUsers").value.split("\n"); if(users.length == 0) return; var wpMassUnblockReason = document.getElementById("wpMassUnblockReason").value, unblocked = 0, failed = new Array, error = new Array; for(i=0;i 0) { var req = new XMLHttpRequest; req.open("GET", mw.config.get('wgScriptPath') + "/api.php?format=json&action=query&prop=info&meta=tokens&type=csrf&titles=User:" + encodeURIComponent(user), false); req.send(null); var query = eval("(" + req.responseText + ")").query; var token = query.tokens.csrftoken; var response = query.pages; for(var index in response) { var info = response[index]; var postdata = "format=json" + "&action=unblock" + "&user=" + encodeURIComponent(user) + "&reason=" + encodeURIComponent(wpMassUnblockReason) + "&token=" + encodeURIComponent(token); var req = new XMLHttpRequest; req.open("POST", mw.config.get('wgScriptPath') + "/api.php", false); req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); req.setRequestHeader("Content-length", postdata.length); req.send(postdata); if(eval("(" + req.responseText + ")").unblock) { //If unblocked, update the unblocked count and the button. unblocked++; document.getElementById("wpMassUnblockSubmit").value = "(" + unblocked + ")"; } else { //If not deleted, add the title to the "failed" array and a description of the error to the "error" array. failed.push(user); error.push(eval("(" + req.responseText + ")").error.info); }           }        }        if(!users[i+1]) { document.getElementById("wpMassUnblockSubmit").value = "Done (" + unblocked + ")"; if(failed.length > 0) { var linkedList = ""; for(x=0; x" + failed[x] + ": " + error[x] + ""; //Links the titles in the "failed" array }               document.getElementById("wpMassUnblockFailedContainer").innerHTML += ' Failed unblocks:' + linkedList + ''; }       }    } } function massUnblockform { var bodyContent; switch (mw.config.get('skin')) { case 'modern': bodyContent = 'mw_contentholder'; break; case 'cologneblue': bodyContent = 'article'; break; case 'monobook': case 'vector': default: bodyContent = 'bodyContent'; break; }   document.getElementsByTagName("h1")[0].textContent = "Tim's mass-unblocking tool"; document.title = "Tim's mass-unblocking tool - Wikipedia, the free encyclopedia"; document.getElementById(bodyContent).innerHTML = 'From Wikipedia, the free encyclopedia

'       + '' + 'If you abuse this tool, it\'s your fault, not mine.' + ' '       + '

'           + 'Users to unblock (one on each line, please): '               + ' ' + '

'           + '  Reason: ' + '  ' + '  ' + ' '; } if(mw.config.get("wgNamespaceNumber") == -1 && mw.config.get("wgTitle").toLowerCase == "massunblock" && /sysop/.test(mw.config.get("wgUserGroups"))) $(massUnblockform);