User:Erik9/monobook.js
//
// Cookie functions from User:GeorgeMoney/UserScripts/helpers/all
// Warnings script modified from User:VoA/monobook.js
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
//A clock that autoupdates
//From the user scripts project, User:Voice of All/UTCclock.js
addOnloadHook(loadclock)
function loadclock()
{
//monobook
if (document.getElementById('pt-userpage'))
{
var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0];
addlilink(toplinks, wgScript + '?title=' + wgPageName.replace(/&/g,'%26') + '&action=purge', '', 'utcdate');
}
//cologneblue
else if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0])
{
var toplinks = document.getElementById('quickbar');
addquickbarlink(wgScript + '?title=' + wgPageName.replace(/&/g,'%26') + '&action=purge', 'Current time', 'utcdate','Browse')
}
showtime();
CheckSuppressRC();
}
function showtime()
{
var timerID;
var now = new Date();
var timeValue = now.toUTCString().substring(0,22) + " UTC";
if (document.getElementById('utcdate'))
{document.getElementById('utcdate').firstChild.innerHTML = timeValue;}
timerID = setTimeout('showtime()', 1000);
}
function storePageTitle()
{
if(document.URL.indexOf('action=rollback') != -1)
{
var c1 = document.getElementById('column-one');
var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
createCookie("rolledbackPageTitle", document.URL.substr(document.URL.indexOf("title=") + "title=".length, document.URL.indexOf("&action=") - (document.URL.indexOf("title=") + "title=".length) ), 1);
createCookie("userTalkPage", document.URL.substr(document.URL.indexOf("from=") + "from=".length, document.URL.indexOf("&token=") - (document.URL.indexOf("from=") + "from=".length) ), 1);
tabs.appendChild(tnaddlilink('javascript:UwTestnAutoEdit(1, false)',"t1"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(1, false)',"v1"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(2, false)',"v2"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(3, false)',"v3"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(4, false)',"v4"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(1, false)',"n1"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(2, false)',"n2"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(3, false)',"n3"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(4, false)',"n4"));
tabs.appendChild(tnaddlilink('javascript:BlpnAutoEdit(0, false)',"p0"));
tabs.appendChild(tnaddlilink('javascript:BlpnAutoEdit(1, false)',"p1"));
tabs.appendChild(tnaddlilink('javascript:BlpnAutoEdit(2, false)',"p2"));
}
}
addOnloadHook(storePageTitle);
//IMPORTS
importScript('User:Voice_of_All/Addtabs/monobook.js');
importScript('User:Voice_of_All/UTCclock.js');
//
//
// User:Lupin/recent2.js - please include this line
mw.loader.load(
'https://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js'
+ '&action=raw&ctype=text/javascript&dontcountme=s');
//
//
// ============= test-n.js ==============
function tnaddlilink(url, name)
{
var na = document.createElement('a');
na.setAttribute('href', url);
var txt = document.createTextNode(name);
na.appendChild(txt);
var li = document.createElement('li');
li.appendChild(na);
return li;
}
function UwTestnAutoEdit(number, useCurrTalkPage)
{
if(useCurrTalkPage)
{
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
}
else
{
var title = "User_talk:" + readCookie("userTalkPage");
}
location.assign("/wikipedia/en/w/index.php?title=" + title + "&action=edit&fakeaction=test" + number);
}
function UwVandnAutoEdit(number, useCurrTalkPage)
{
if(useCurrTalkPage)
{
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
}
else
{
var title = "User_talk:" + readCookie("userTalkPage");
}
location.assign("/wikipedia/en/w/index.php?title=" + title + "&action=edit&fakeaction=warn" + number);
}
function UwNpovnAutoEdit(number, useCurrTalkPage)
{
if(useCurrTalkPage)
{
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
}
else
{
var title = "User_talk:" + readCookie("userTalkPage");
}
location.assign("/wikipedia/en/w/index.php?title=" + title + "&action=edit&fakeaction=npov" + number);
}
function BlpnAutoEdit(number, useCurrTalkPage)
{
if(useCurrTalkPage)
{
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
}
else
{
var title = "User_talk:" + readCookie("userTalkPage");
}
location.assign("/wikipedia/en/w/index.php?title=" + title + "&action=edit&fakeaction=blp" + number);
}
function UwTestn(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "If this is an IP address, and it is shared by multiple users, ignore this warning if you did not make any unconstructive edits. ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to Category):/i,':$1:')) + '';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during {{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}} {{subst:CURRENTYEAR}} (UTC)" + varticle + "====" + "\n" + "{{subst:" + "uw-test" + number + "|" + readCookie("rolledbackPageTitle") + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "uw-test" + number;
f.wpSave.click();
}
function UwVandn(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "If this is an IP address, and it is shared by multiple users, ignore this warning if you did not make any unconstructive edits. ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to Category):/i,':$1:')) + '';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during {{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}} {{subst:CURRENTYEAR}} (UTC)" + varticle + "====" + "\n" + "{{subst:" + "uw-vand" + number + "|" + readCookie("rolledbackPageTitle") + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "uw-vand" + number;
f.wpSave.click();
}
function UwNpovn(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "If this is an IP address, and it is shared by multiple users, ignore this warning if you did not make any unconstructive edits. ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to Category):/i,':$1:')) + '';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during {{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}} {{subst:CURRENTYEAR}} (UTC)" + varticle + "====" + "\n" + "{{subst:" + "uw-npov" + number + "|" + readCookie("rolledbackPageTitle") + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "uw-npov" + number;
f.wpSave.click();
}
function UwDeleten(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "If this is an IP address, and it is shared by multiple users, ignore this warning if you did not make any unconstructive edits. ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to Category):/i,':$1:')) + '';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during {{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}} {{subst:CURRENTYEAR}} (UTC)" + varticle + "====" + "\n" + "{{subst:" + "uw-delete" + number + "|" + readCookie("rolledbackPageTitle") + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "uw-delete" + number;
f.wpSave.click();
}
function blpn(number)
{
var IPnote = '';
if (document.title.split(' - ')[0].split('.').length == 4)
{IPnote = "If this is an IP address, and it is shared by multiple users, ignore this warning if you did not make any unconstructive edits. ";}
var varticle = '';
if (location.href.indexOf('&vanarticle=') != -1)
{varticle = ' to Category):/i,':$1:')) + '';}
var f = document.editform, t = f.wpTextbox1;
if (t.value.length > 0)
t.value += '\n';
t.value +="====" + "Regarding edits made during {{subst:CURRENTMONTHNAME}} {{subst:CURRENTDAY}} {{subst:CURRENTYEAR}} (UTC)" + varticle + "====" + "\n" + "{{subst:" + "blp" + number + "|" + readCookie("rolledbackPageTitle") + "}} " + IPnote + "~" + "~" + "~" + "~";
f.wpSummary.value = "blp" + number;
f.wpSave.click();
}
//Quick warning tabs
addOnloadHook(add_testn_tabs);
function add_testn_tabs()
{
var c1 = document.getElementById('column-one');
var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
if (document.title.indexOf("Editing User talk:") != -1 && readCookie("RCToolsEnable") != "false")
{
var f = document.editform, t = f.wpTextbox1;
if (document.URL.lastIndexOf("&fakeaction=warn") != -1)
{
UwVandn(document.URL[document.URL.lastIndexOf("&fakeaction=warn") + "&fakeaction=warn".length]);
}
else if (document.URL.lastIndexOf("&fakeaction=test") != -1)
{
UwTestn(document.URL[document.URL.lastIndexOf("&fakeaction=test") + "&fakeaction=test".length]);
}
else if (document.URL.lastIndexOf("&fakeaction=npov") != -1)
{
UwNpovn(document.URL[document.URL.lastIndexOf("&fakeaction=npov") + "&fakeaction=npov".length]);
}
else if (document.URL.lastIndexOf("&fakeaction=blp") != -1)
{
blpn(document.URL[document.URL.lastIndexOf("&fakeaction=blp") + "&fakeaction=blp".length]);
}
else
{
tabs.appendChild(tnaddlilink('javascript:UwTestn(1)',"t1"));
tabs.appendChild(tnaddlilink('javascript:UwVandn(1)',"v1"));
tabs.appendChild(tnaddlilink('javascript:UwVandn(2)',"v2"));
tabs.appendChild(tnaddlilink('javascript:UwVandn(3)',"v3"));
tabs.appendChild(tnaddlilink('javascript:UwVandn(4)',"v4"));
tabs.appendChild(tnaddlilink('javascript:UwNpovn(1)',"n1"));
tabs.appendChild(tnaddlilink('javascript:UwNpovn(2)',"n2"));
tabs.appendChild(tnaddlilink('javascript:UwNpovn(3)',"n3"));
tabs.appendChild(tnaddlilink('javascript:UwNpovn(4)',"n4"));
tabs.appendChild(tnaddlilink('javascript:UwDeleten(1)',"d1"));
tabs.appendChild(tnaddlilink('javascript:UwDeleten(2)',"d2"));
tabs.appendChild(tnaddlilink('javascript:UwDeleten(3)',"d3"));
tabs.appendChild(tnaddlilink('javascript:UwDeleten(4)',"d4"));
tabs.appendChild(tnaddlilink('javascript:blpn(0)',"p0"));
tabs.appendChild(tnaddlilink('javascript:blpn(1)',"p1"));
tabs.appendChild(tnaddlilink('javascript:blpn(2)',"p2"));
if(document.getElementById('ca-delete'))
{
document.getElementById('ca-delete').firstChild.innerHTML = '[d]';
}
if(document.getElementById('ca-move'))
{
document.getElementById('ca-move').firstChild.innerHTML = '[m]';
}
if(document.getElementById('ca-watch'))
{
document.getElementById('ca-watch').firstChild.innerHTML = '[w]';
}
if(document.getElementById('ca-unwatch'))
{
document.getElementById('ca-unwatch').firstChild.innerHTML = '[uw]';
}
if(document.getElementById('ca-edit'))
{
document.getElementById('ca-edit').firstChild.innerHTML = 'Edit';
}
if(document.getElementById('ca-talk'))
{
document.getElementById('ca-talk').firstChild.innerHTML = 'Talk';
}
if(document.getElementById('ca-protect'))
{
document.getElementById('ca-protect').firstChild.innerHTML = 'P (off)';
}
if(document.getElementById('ca-unprotect'))
{
document.getElementById('ca-unprotect').firstChild.innerHTML = 'P (on)';
}
}
}
else if (document.title.indexOf("User talk:") != -1 && document.title.indexOf("Revision history of") == -1 && readCookie("RCToolsEnable") != "false")
{
tabs.appendChild(tnaddlilink('javascript:UwTestnAutoEdit(1, true)',"t1"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(1, true)',"v1"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(2, true)',"v2"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(3, true)',"v3"));
tabs.appendChild(tnaddlilink('javascript:UwVandnAutoEdit(4, true)',"v4"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(1, true)',"n1"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(2, true)',"n2"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(3, true)',"n3"));
tabs.appendChild(tnaddlilink('javascript:UwNpovnAutoEdit(4, true)',"n4"));
tabs.appendChild(tnaddlilink('javascript:BlpnAutoEdit(0, true)',"p0"));
tabs.appendChild(tnaddlilink('javascript:BlpnAutoEdit(1, true)',"p1"));
tabs.appendChild(tnaddlilink('javascript:BlpnAutoEdit(2, true)',"p2"));
}
}
//
//
//Please leave the following line
//Start db script
//modded by VoA
addOnloadHook(function()
{
//check if called from deletion request
if (document.title.indexOf("Editing ") != -1 && wgNamespaceNumber !=-1)
{
if (document.URL.lastIndexOf("&fakeaction=huff") == -1)
return;
if (document.URL.lastIndexOf("&reason=off") != -1)
{
var type = prompt("Enter criteria for speedy deletion, e.g. A1, G3");
var f = document.editform, t = f.wpTextbox1;
t.value = "{{db-" + type.toLowerCase() + "}}\n" + t.value;
f.wpSummary.value = "JS: Requesting speedy deletion (CSD " + type + ")";
f.wpSave.click();
return;
}
else if (document.URL.lastIndexOf("&reason=on") != -1)
{
var type = prompt("Enter reason for speedy deletion");
var f = document.editform, t = f.wpTextbox1;
t.value = "{{db|" + type + "}}\n" + t.value;
f.wpSummary.value = "JS: Requesting speedy deletion";
f.wpSave.click();
return;
}
}
if (window.location.href.search(/Special:|&action=/) != -1)
return;
addTab("javascript:easyDb(0)", "db (csd)", "ca-db0", "Request speedy deletion according to WP:CSD", "");
addTab("javascript:easyDb(1)", "db (reason)", "ca-db0", "Request speedy deletion with reason", "");
});
function easyDb(n)
{
if (n == 0)
{
//edit page
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
location.assign("/wikipedia/en/w/index.php?title=" + title + "&action=edit&fakeaction=huff&reason=off");
}
if (n == 1)
{
//edit page
var title = document.title.substr(0, document.title.lastIndexOf(' - Wikipedia, the free'));
location.assign("/wikipedia/en/w/index.php?title=" + title + "&action=edit&fakeaction=huff&reason=on");
}
}
function suppressRollback()
{
for (var i in document.links)
{
if (document.links[i].href.indexOf('action=rollback') != -1)
{
document.links[i].href = "";
}
}
}
function CheckSuppressRC()
{
var c1 = document.getElementById('column-one');
var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
if(readCookie("RCToolsEnable") == "false")
{
tabs.appendChild(tnaddlilink('javascript:EnableRC()',"+RC"));
suppressRollback();
}
else if((document.title.indexOf("User talk:") == -1 || document.title.indexOf("Revision history of") != -1) && (document.URL.indexOf('action=rollback') == -1))
{
tabs.appendChild(tnaddlilink('javascript:SuppressRC()',"-RC"));
}
}
function EnableRC()
{
createCookie("RCToolsEnable", "true");
location.assign(document.URL);
}
function SuppressRC()
{
createCookie("RCToolsEnable", "false");
location.assign(document.URL);
}
//ARV 2.0 from User:Lightdarkness/aiv.js
// -----------------------------------------------------------------------------
// XMLHttpRequest support
// -----------------------------------------------------------------------------
if (document.implementation.createDocument) {
var gml_xmlparser = new DOMParser();
}
function gml_XMLParse(string) {
if (document.implementation.createDocument) {
return gml_xmlparser.parseFromString(string, "text/xml");
} else if (window.ActiveXObject) {
var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
gml_xmldoc.async = "false";
ret = gml_xmldoc.loadXML(string);
if (!ret)
return null;
return gml_xmldoc.documentElement;
}
return null;
}
var gml_xmlhttp;
function HTTPClient() {
var gml_http;
if(window.XMLHttpRequest) {
gml_http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
gml_http = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
gml_http = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
gml_http = false;
}
}
}
return gml_http;
}
var pageName;
var AIVpageName = 'Wikipedia:Administrator_intervention_against_vandalism';
var section = '1';
var vandal;
var reason;
function addlilinkAIV(url, name, id){
var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = id;
li.appendChild(na);
tabs.appendChild(li);
return li;
}
function AIV(){
if (document.title.indexOf("User talk:") != -1){
username = location.href.split(':')[2];
if(!username){
username = document.getElementsByTagName('h1')[0].innerHTML.split(':')[1];
}
if (username.indexOf("&action=edit") != -1){
//remove &action=edit from username, only happens when editing user talk
username = username.split('&')[0];
}
else if (username.indexOf("&action=submit") != -1){
//remove &action=submit from username, only happens after giving user a warning.
username = username.split('&')[0];
}
if (username.indexOf("#") != -1){
//this removes any ancor that could possibly be in the URL bar, where we fetch the username from.
username = username.split('#')[0];
}
//if there is an & in there, lets get rid of it
if (username.indexOf("&") != -1){
username = username.split('&')[0];
}
var test = username.split('.');
if(test[3]) {
addlilinkAIV('javascript:AIVandal("' + username + '")', 'Report IP', 'td-report');
}
else {
addlilinkAIV('javascript:AIVandal("' + username + '")', 'Report', 'td-report');
}
}
if (document.title.indexOf("User contributions") != -1){
username = location.href.split('/')[7];
if(username == undefined || username == ""){
//if this is the case, then something is up
if(location.href.indexOf("&target=")){
//it looks like we came here from a target link, lets just take the username from that
username = location.href.split('=')[2];
}
}
addlilinkAIV('javascript:AIVandal("' + username + '")', 'Report', 'td-report');
}
}
function AIVandal(vandalU){
vandal = vandalU;
if(vandal == document.getElementById('pt-userpage').getElementsByTagName('a')[0].innerHTML){
alert('You don\'t want to report yourself, do you?');
return;
}
reason = prompt('Reason?:');
if(!reason)
return;
document.getElementById('bodyContent').innerHTML = 'Please wait' + '...';
gml_xmlhttp = HTTPClient();
if (!gml_xmlhttp)
return;
document.getElementById('bodyContent').innerHTML += '
Grabbing page...';gml_xmlhttp.open('GET', 'https://secure.wikimedia.org/wikipedia/en/w/index.php?title=' + AIVpageName + '&action=edit' + '§ion=' + section + '', true);
gml_xmlhttp.onreadystatechange = AIVMore;
gml_xmlhttp.send(null);
}
function AIVMore() {
if (gml_xmlhttp.readyState != 4){
document.getElementById('bodyContent').innerHTML += '.';
return
}
var form, newform, l;
// Insert the downloaded form in our current page, using
// only hidden form inputs.
doc = gml_XMLParse(gml_xmlhttp.responseText);
form = doc.getElementById('editform');
var x;
var t = form.wpTextbox1.value;
myArray = t.split(" ");
var add;
add = true;
document.getElementById('bodyContent').innerHTML += '
Searching for existing report...';var test = "*{{vandal|" + vandal + "}}";
for (x in myArray)
{
myArray2 = myArray[x].split(/\n/);
for (y in myArray2){
if(myArray2[y] == '{{vandal|' + vandal + '}}'){
add = false;
}
if(myArray2[y] == test){
add = false;
}
if(myArray2[y] == '{{IPvandal|' + vandal + '}}'){
add = false;
}
}
}
if(add == true){
document.getElementById('bodyContent').innerHTML += '
No report found, adding...';}
else{
//alert('CSD tag found');
document.getElementById('bodyContent').innerHTML += '
Report found, will not add...';return;
}
//let's do something expiremntal, to see if it's an IP address
var test = username.split('.');
if(test[3]) {
form.wpTextbox1.value += '*{{IPvandal|' + vandal + '}} - ' + reason + ' --~' + '~' + '~' + '~';
}
else {
form.wpTextbox1.value += '*{{vandal|' + vandal + '}} - ' + reason + ' --~' + '~' + '~' + '~';
}
form.wpSummary.value = 'Reporting ' + vandal + ' using ARV 2.1.';
newform = document.createElement('form');
l = form.getElementsByTagName('textarea');
for (i = l.length; i--; ) {
var t = document.createElement('input');
t.type = 'hidden';
t.name = l[i].name;
t.value = l[i].value;
newform.appendChild(t);
}
l = form.getElementsByTagName('input');
for (i = l.length; i--; ) {
if (l[i].name == 'wpSummary') {
l[i].value = 'Reporting ' + vandal + ' using ARV 2.1.';
} else if (l[i].name == 'wpMinoredit') {
l[i].value = '1';
} else if (l[i].name == 'wpWatchthis') {
if (!l[i].checked)
continue;
l[i].value = "on";
} else if (l[i].name == 'wpPreview') {
continue;
} else if (l[i].name == 'wpDiff') {
continue;
}
l[i].type = 'hidden';
newform.appendChild(l[i]);
}
newform.name = form.name;
newform.method = form.method;
newform.id = form.id;
newform.action = form.action;
document.getElementById('bodyContent').innerHTML += '
Submitting form...';document.getElementById('bodyContent').appendChild(newform);
// Submit the form
newform.submit();
}
addOnloadHook(AIV);
//modification of User:Mr.Z-man/closeAFD.js
if (wgPageName.indexOf('Wikipedia:Articles_for_deletion/') != -1 && wgPageName.indexOf('Wikipedia:Articles_for_deletion/Log/200') == -1) {
var closeAFD_PageName = wgPageName.replace(/_/g, ' ');
var closeAFD_isAdmin = (wgUserGroups.toString().indexOf('sysop') != -1);
var closeAFD_AJAXnumber = 0;
var closeAFD_deletenredirect = false;
var closeAFD_nomdate = null;
var closeAFD_deletecount = 0;
var closeAFD_redirectlimit;
var closeAFD_redirtotal;
var closeAFD_redircount = 0;
function closeAFD_relist() {
if (!wfSupportsAjax()) {
jsMsg('
Your browser does not seem to support AJAX, which is required for the closeAFD script.');return;
}
var today = new Date();
var monthnames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
month = monthnames[today.getUTCMonth()];
day = today.getUTCDate();
year = today.getUTCFullYear();
datestring = year + " " + month + " " + day;
var newlog = "Wikipedia:Articles for deletion/Log/"+datestring;
oldlog = closeAFD_getOldLog();
jsMsg('
Relisting '+closeAFD_PageName+'
- Old log: '+oldlog+'
- New log: '+newlog+'
');}
function closeAFD_continue_relist(newlog, oldlog) {
jsMsg('
');
document.getElementById('closeAFD_finish').innerHTML += '';
AFDpage = closeAFD_getPageText(closeAFD_PageName);
oldlogpage = closeAFD_getPageText(oldlog);
newlogpage = closeAFD_getPageText(newlog);
if (newlogpage == || oldlogpage == ) {
jsMsg('Log page doesn\'t seem to exist!');
return;
}
var regexpagename = closeAFD_PageName.replace(/([\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E])/g, "\\$1");
regexpagename = regexpagename.replace(/ /g, "[\\s_]");
var rplstr = new RegExp("(\\{\\{" + regexpagename + "\\}\\})", "gi");
oldlogpage = oldlogpage.replace(rplstr, "");
newlogreg = new RegExp("", "i");
if (!newlogreg.test(newlogpage)) {
jsMsg('
'+newlog+' is missing the <!-- Add new entries to the TOP of the following list --> above the AFD tranclusions! Please add it.');
Unable to relist. Aborting.return;
}
newlogpage = newlogpage.replace(newlogreg, "\n{"+"{"+closeAFD_PageName+"}}");
AFDpage += '\n{'+'{subst:relist}}';
AFDpage = AFDpage.replace(/Wikipedia:Articles for deletion\/Log\/\d{4} \D{4,9} \d{1,2}#/i, newlog+"#");
token = closeAFD_getToken(true);
closeAFD_editPage(newlog, newlogpage, token, "Relisting " + closeAFD_PageName + "");
closeAFD_editPage(oldlog, oldlogpage, token, "Relisting " + closeAFD_PageName + "");
closeAFD_editPage(closeAFD_PageName, AFDpage, token, "Relisting debate");
document.getElementById('closeAFD_finished_main').style.display = '';
}
function closeAFD_init() {
if (!wfSupportsAjax()) {
jsMsg('Your browser does not seem to support AJAX, which is required for the closeAFD script.');
return;
}
form = '
'+';'
Closing '+closeAFD_PageName+'
'+''+
'
'+''+
''+
''+
''+
''+
'
'+''+
'
jsMsg(form);
if (!closeAFD_isAdmin) {
document.getElementById('closeAFD_delete_button').disabled = true;
document.getElementById('closeAFD_deleteredir').disabled = true;
}
}
function closeAFD_prompt(type) {
document.getElementById('closeAFD_extra').innerHTML += '
';if (type == 'redirect') {
document.getElementById('closeAFD_extra').innerHTML += '';
}
document.getElementById('closeAFD_extra').innerHTML += '';
if (!closeAFD_isAdmin && type == 'redirect') {
document.getElementById('closeAFD_delete_first').disabled = true;
}
}
function closeAFD_other() {
document.getElementById('closeAFD_extra').innerHTML += '
'+''+
'';
if (!closeAFD_isAdmin) {
document.getElementById('closeAFD_other_delete_button').disabled = true;
}
}
function closeAFD_otherdelete() {
document.getElementById('closeAFD_dodelete').value = 1;
close = document.getElementById('closeAFD_otherclose').value;
closeAFD_close(close);
}
function closeAFD_otherkeep() {
close = document.getElementById('closeAFD_otherclose').value;
closeAFD_close(close);
}
function closeAFD_close(close) {
if (typeof(closeAFD_redirectlimit) == "undefined") {
closeAFD_redirectlimit = 50;
}
deleteredirects = false;
if (document.getElementById('closeAFD_deleteredir').checked) {
deleteredirects = true;
}
closetype = close;
var dodelete = false;
if (closetype == "delete" || document.getElementById('closeAFD_dodelete').value == 1) {
dodelete = true;
}
var reason = document.getElementById('closeAFD_reason').value;
if (reason != '') {
reason = ' '+reason;
}
if (closetype == "redirect" || closetype == "merge") {
var target = document.getElementById('closeAFD_prompt').value;
if (target == null || target == '') {
jsMsg('
No target entered.')return;
}
close+= " to "+target+"";
}
if (closetype == "redirect" && document.getElementById('closeAFD_delete_first').checked == true) {
dodelete = true;
closeAFD_deletenredirect = target;
}
if (document.getElementById('closeAFD_speedy').checked == true) {
close = "speedy "+close;
}
jsMsg('
');
document.getElementById('closeAFD_finish').innerHTML += '';
var AFDpage = closeAFD_getPageText(closeAFD_PageName);
closeAFD_nomdate = /\d{1,2} \D{4,9} \d{4} \(UTC\)/.exec(AFDpage);
AFDpage = AFDpage.replace(/{\{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD\|(\w|\?)}}\n/i,"");
if (closeAFD_isAdmin) {
AFDpage = "{"+"{subst:at}} "+close+"."+reason+' ~~'+'~~\n' + AFDpage + '\n{'+'{subst:ab}}';
} else {
AFDpage = "{"+"{subst:at}} "+close+"."+reason+' (non-admin closure) ~~'+'~~\n' + AFDpage + '\n{'+'{subst:ab}}';
}
token = closeAFD_getToken(true);
pagetitle = wgTitle.substring(wgTitle.indexOf('/')+1);
debatename = pagetitle;
if (pagetitle.indexOf("nomination)") != -1) {
pagetitle = pagetitle.replace(/ \([^\)\(]*? nomination\)\s*$/, '');
}
closeAFD_editPage(closeAFD_PageName, AFDpage, token, "Closing debate, result was " + close);
var AFDlink = ''+closeAFD_PageName+'';
if (dodelete) {
if (deleteredirects) {
redirects = closeAFD_getRedirects(pagetitle);
if (redirects == "toomanyredir") {
document.getElementById('closeAFD_status').innerHTML += '
Number of redirects exceeds limit of '+closeAFD_redirectlimit+' ';} else if (redirects == "noredir") {
document.getElementById('closeAFD_status').innerHTML += '
No redirects ';} else {
closeAFD_deleteRedirects(pagetitle, redirects, token);
}
}
closeAFD_deletePage(pagetitle, encodeURIComponent(token), AFDlink, false, false);
closeAFD_deletePage("Talk:"+pagetitle, encodeURIComponent(token), AFDlink, false, false);
}
var articlepage = ''
if (closetype != "redirect" && closetype != "delete" && !dodelete ) {
articlepage = closeAFD_getPageText(pagetitle);
articlepage = articlepage.replace(/[\S\s]*?\n/, '');
articlepage = articlepage.replace(/\{\{\s*(r|R)escue\s*(\|.*?)?\}\}/, '');
}
if (closetype == "redirect") {
articlepage = "#REDIRECT "+target+"";
}
if (!dodelete) {
if (closeAFD_nomdate == null) {
closeAFD_nomdate = prompt("Nomination date?", '');
}
var talkpage = '';
if (closetype != "redirect") {
talkpage = closeAFD_getPageText("Talk:"+pagetitle);
talkpage = "{"+"{oldafdfull| date = "+closeAFD_nomdate+" | result = "+close+" | page = "+pagetitle+" }}\n\n" + talkpage;
} else {
talkpage = "{"+"{oldafdfull| date = "+closeAFD_nomdate+" | result = "+close+" | page = "+pagetitle+" }}";
}
if (closetype == "merge") {
var today = new Date();
var monthnames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
month = monthnames[today.getUTCMonth()]
day = today.getUTCDate()
if (day < 10) {
day = "0"+day;
}
year = today.getUTCFullYear();
datestring = day + " " + month + " " + year;
articlepage = "{"+"{afd-mergeto|"+target+"|"+debatename+"|"+datestring+"}}\n\n" + articlepage;
var targettalkpage = closeAFD_getPageText("Talk:"+target);
targettalkpage = "{"+"{afd-mergefrom|"+pagetitle+"|"+debatename+"|"+datestring+"}}\n\n" + targettalkpage;
closeAFD_editPage("Talk:"+target, targettalkpage, token, AFDlink + " closed as " + close);
}
closeAFD_editPage(pagetitle, articlepage, token, AFDlink + " closed as " + close);
closeAFD_editPage("Talk:"+pagetitle, talkpage, token, AFDlink + " closed as " + close);
}
document.getElementById('closeAFD_finished_main').style.display = '';
}
function closeAFD_getPageText(title) {
document.getElementById('closeAFD_status').innerHTML += '
Getting '+title+' ';var req = sajax_init_object();
req.open("GET", wgScriptPath + "/api.php?action=query&prop=revisions&rvprop=content&format=json&indexpageids=1&titles="+encodeURIComponent(title), false);
req.send(null);
var response = eval('(' + req.responseText + ')');
pageid = response['query']['pageids'][0];
if (pageid == "-1") {
document.getElementById('closeAFD_get'+escape(title)).innerHTML = ''+title+' does not exist';
delete req;
return '';
}
pagetext = response['query']['pages'][pageid]['revisions'][0]['*'];
delete req;
document.getElementById('closeAFD_get'+escape(title)).innerHTML = 'Got '+title+'';
return pagetext;
}
function closeAFD_getToken(show) {
if (show) {
document.getElementById('closeAFD_status').innerHTML += '
Getting token ';}
var req = sajax_init_object();
req.open("GET", wgScriptPath + "/api.php?action=query&prop=info&indexpageids=1&intoken=edit&format=json&titles="+encodeURIComponent(closeAFD_PageName), false);
req.send(null);
var response = eval('(' + req.responseText + ')');
pageid = response['query']['pageids'][0];
token = response['query']['pages'][pageid]['edittoken'];
delete req;
if (show) {
document.getElementById('closeAFD_gettoken').innerHTML = 'Got token';
}
return token;
}
function closeAFD_getOldLog() {
var req = sajax_init_object();
req.open("GET", wgScriptPath + "/api.php?action=query&format=json&list=embeddedin&eifilterredir=nonredirects&einamespace=4&bllimit=500&eititle="+encodeURIComponent(closeAFD_PageName), false);
req.send(null);
var response = eval('(' + req.responseText + ')');
var logpage = ''
for (var i=0; i
if (response['query']['embeddedin'][i]['title'].indexOf('Wikipedia:Articles for deletion/Log/') != -1) {
logpage = response['query']['embeddedin'][i]['title'];
}
}
delete req;
return logpage;
}
function closeAFD_editPage(title, newtext, token, summary) {
document.getElementById('closeAFD_finished_wrapper').innerHTML = '
';var func_id = closeAFD_AJAXnumber;
closeAFD_AJAXnumber++;
document.getElementById('closeAFD_status').innerHTML += '
Editing '+title+' ';var req = sajax_init_object();
var params = "action=edit&format=json&token="+encodeURIComponent(token)+"&title="+encodeURIComponent(title)+"&text="+encodeURIComponent(newtext)+"¬minor=1&unwatch=1&summary="+encodeURIComponent(summary);
url = wgScriptPath + "/api.php";
req.open("POST", url, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-length", params.length);
req.setRequestHeader("Connection", "close");
req.onreadystatechange = function() {
if(req.readyState == 4 && req.status == 200) {
response = eval('(' + req.responseText + ')');
try {
if (response['edit']['result'] == "Success") {
document.getElementById('closeAFD_edit'+escape(title)).innerHTML = 'Saved '+title+'';
} else {
document.getElementById('closeAFD_edit'+escape(title)).innerHTML = '
Edit failed on '+title+'. Error info:' +response['error']['code'] + ' : ' + response['error']['info'];}
}
catch(err) {
document.getElementById('closeAFD_edit'+escape(title)).innerHTML = '
Edit failed on '+title+'';}
document.getElementById('closeAFD_AJAX_finished_'+func_id).style.display = '';
delete req;
}
}
req.send(params)
}
function closeAFD_deletePage(title, token, summary, isredirect, retry) {
document.getElementById('closeAFD_finished_wrapper').innerHTML = '
';var func_id = closeAFD_AJAXnumber;
closeAFD_AJAXnumber++;
if (!isredirect && !retry) {
document.getElementById('closeAFD_status').innerHTML += '
Deleting '+title+' ';} else if(!retry) {
closeAFD_redircount++;
thisredir = closeAFD_redircount
document.getElementById('redirstart').style.display = '';
document.getElementById('redirstart').innerHTML = 'Deleting redirect ' + closeAFD_redircount + ' of ' + closeAFD_redirtotal;
}
var req = sajax_init_object();
var params = "action=delete&format=json&token="+token+"&title="+encodeURIComponent(title)+"&reason="+encodeURIComponent(summary);
url = wgScriptPath + "/api.php";
req.open("POST", url, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-length", params.length);
req.setRequestHeader("Connection", "close");
req.onreadystatechange = function() {
if(req.readyState == 4 && req.status == 200) {
response = eval('(' + req.responseText + ')');
try {
if (response['delete']['title']) {
if (!isredirect) {
document.getElementById('closeAFD_delete'+escape(title)).innerHTML = 'Deleted '+title+'';
} else {
document.getElementById('redirend').style.display = '';
document.getElementById('redirend').innerHTML = 'Deleted redirect ' + thisredir + ' of ' + closeAFD_redirtotal;
}
}
}
catch(err) {
if (response['error']['code'] == "missingtitle") {
document.getElementById('closeAFD_delete'+escape(title)).innerHTML = ''+title+' does not exist';
} else if(!isredirect) {
if (retry) {
document.getElementById('closeAFD_delete'+escape(title)).innerHTML = 'Deletion error on '+title+'. Error info:' +response['error']['code'] + ' : ' + response['error']['info'] + '';
} else {
closeAFD_deletePage(title, token, summary, false, true);
}
} else {
if (retry) {
document.getElementById('closeAFD_status').innerHTML += '
Deletion error on '+title+'. Error info:' +response['error']['code'] + ' : ' + response['error']['info'] + ' ';} else {
closeAFD_deletePage(title, token, summary, true, true);
}
}
}
document.getElementById('closeAFD_AJAX_finished_'+func_id).style.display = '';
delete req;
if (!isredirect) {
closeAFD_deletecount++;
}
if (closeAFD_deletenredirect && closeAFD_deletecount == 2) {
articletext = '';
articletext = "#REDIRECT "+closeAFD_deletenredirect+"";
var AFDlink = ''+closeAFD_PageName+'';
token = closeAFD_getToken(false);
closeAFD_editPage(title, articletext, token, AFDlink + " closed as redirect to "+closeAFD_deletenredirect+"")
}
}
}
req.send(params)
}
function closeAFD_getRedirects(page) {
document.getElementById('closeAFD_status').innerHTML += '
Getting redirects ';var url = wgScriptPath + "/api.php?action=query&format=json&action=query&list=backlinks&bltitle="+encodeURIComponent(page)+"&blfilterredir=redirects&bllimit="+closeAFD_redirectlimit
var req = sajax_init_object();
req.open("GET", url, false);
req.send(null);
var response = eval('(' + req.responseText + ')');
if (typeof(response['query-continue']) != "undefined") {
return "toomanyredir";
}
if (typeof(response['query']) == "undefined") {
return "noredir";
}
var redirects = new Array();
for (var i=0; i
redirects[i] = response['query']['backlinks'][i]['title'];
}
delete req;
document.getElementById('closeAFD_getredir').innerHTML = 'Got '+redirects.length+' redirects';
closeAFD_redirtotal = redirects.length;
return redirects;
}
function closeAFD_deleteRedirects(pagetitle, redirects, token) {
summary = "Deleting redirects to \""+pagetitle+"\" after "+closeAFD_PageName+"";
document.getElementById('closeAFD_status').innerHTML += '
';for (var i=0; i
setTimeout("closeAFD_deletePage('"+redirects[i].replace(/'/, "\'")/*'*/+"', '"+encodeURIComponent(token)+"', '"+summary+"', true, false)", 500*closeAFD_redircount );
}
}
function closeAFD_addLink() {
mw.util.addPortletLink("p-cactions", "javascript:closeAFD_init()", "Close", "ca-closeAFD", "Close AFD");
mw.util.addPortletLink("p-cactions", "javascript:closeAFD_relist()", "Relist", "ca-closeAFD-relist", "Relist AFD");
}
addOnloadHook(closeAFD_addLink);
}
importScript('User:John254/mass rollback.js');
//modification of User:Mr.Z-man/User:Mr.Z-man/rollbackSummary.js
function rollbackSummary() {
var hasRollback = getElementsByClassName(document, "span", "mw-rollback-link");
if (hasRollback[0] && (document.title.indexOf("User contributions") != -1)) {
mw.util.addPortletLink('p-cactions', 'javascript:setRollbackSummary()', "rollback summary", "ca-rollbacksummary", "Set rollback link edit summary");
}
}
addOnloadHook(rollbackSummary);
function setRollbackSummary() {
summary = prompt("Change the default rollback summary for rollback links on this page to:", "");
if (!summary) {
for (var i in document.links) {
if (document.links[i].href.indexOf('summary=') != -1) {
document.links[i].href = document.links[i].href.substring(0, document.links[i].href.indexOf('summary=')-1);
}
}
}
else {
summary = "&summary=" + encodeURIComponent(summary);
for (var i in document.links) {
if (document.links[i].href.indexOf('action=rollback') != -1) {
document.links[i].href += summary;
}
}
}
}
//modification of User:Gracenotes/rollback.js
function addSumLink() {
var rbnode = [], diffnode, index = {}, gebcn = document.getElementsByClassName
? function(a, b, c) { return a.getElementsByClassName(c) }
: getElementsByClassName;
if (typeof rollbackLinksDisable == 'object' && rollbackLinksDisable instanceof Array)
for (var i = 0; i < rollbackLinksDisable.length; i++)
index[rollbackLinksDisable[i]] = 1;
if (!('user' in index) && wgCanonicalSpecialPageName == "Contributions")
rbnode = gebcn(document.getElementById("bodyContent"), "span", "mw-rollback-link");
else if (!('history' in index) && wgAction == "history")
rbnode = gebcn(document.getElementById("pagehistory"), "span", "mw-rollback-link");
else if (!('diff' in index) && (diffnode = document.getElementById("mw-diff-ntitle2")))
rbnode = gebcn(diffnode, "span", "mw-rollback-link");
for (var i = 0, len = rbnode.length; i < len; i++) {
addRollbackSummaryLink(rbnode[i])
}
}
function confirmRollback() {
var url = this.href;
var user = url.match(/[?&]from=([^&]*)/);
if (!user) return;
user = decodeURIComponent(user[1].replace(/\+/g, " "));
var summary = prompt("Enter a summary to use for rollback.\n\nLeave blank to use the default. $user will be replaced with \"" + user + "\".", "")
if (summary == undefined)
return false;
else if (summary == "")
return true;
this.href += "&summary=" + encodeURIComponent(summary.replace(/\$user/g, user));
return true;
};
function addRollbackSummaryLink(rbnode) {
var rblink = rbnode.getElementsByTagName("a")[0]
var alink = rblink.cloneNode(true);
alink.className = ""; //don't confuse other scripts
alink.firstChild.nodeValue = "sum";
alink.onclick = confirmRollback;
rbnode.insertBefore(alink, rblink.nextSibling);
rbnode.insertBefore(document.createTextNode(" | "), alink);
}
if (typeof rollbackLinksDisable == 'undefined')
rollbackLinksDisable = [];
addOnloadHook(addSumLink);
//