User:Magog the Ogre/monobook.js

if (mw.config.get('wgPageName') === "User:Magog_the_Ogre/xdomain") {

var topWindow = window.top;

addEventListener("message", function (e) {

"use strict";

var VALID_ORIGINS = [

"http://tools.wmflabs.org",

"https://tools.wmflabs.org",

/* for personal debugging */

"http://192.168.56.20",

"http://localhost",

"http://magog.toolforge.org",

"https://magog.toolforge.org"

],

originSource = e.origin || "",

originMatches = VALID_ORIGINS.some(function (validOrigin) {

return originSource.indexOf(validOrigin) === 0;

}),

pages = e.data,

api = new mw.Api(),

MAX_AJAX_CHUNKS = 10,

openCount = 0,

/**

* @type Array<() => {}>

*/

waiting = [];

function postMessage(message) {

topWindow.postMessage(message, originSource);

}

if (!originMatches || !topWindow) {

return;

}

if (typeof pages !== "object") {

return;

}

function next() {

if (waiting[0]) {

waiting.shift()();

}

}

$.each(pages, function (page, reason) {

waiting.push(function () {

openCount++;

api.postWithEditToken({

title: page,

reason: reason,

action: "delete"

}).always(function(response, error) {

if (response && response.delete) {

postMessage({

page: page,

status: "success"

});

} else {

postMessage({

page: page,

status: "error",

message: error.error && error.error.info || error

});

}

openCount--;

next();

});

});

if (openCount < MAX_AJAX_CHUNKS) {

next();

}

});

});

topWindow.postMessage("ping", "*");

}

if (navigator.userAgent.indexOf("Android") == -1)

{

importScript('User:Lupin/recent2.js');

importScript('User:AWeenieMan/furme.js');

importScript("User:MGA73/nowcommonsreview.js");

}

//adapted from User:Stefan2/common.js

if (mw.config.get( 'wgNamespaceNumber' ) === 6)

{

$.when(mw.loader.using( ["mediawiki.util"] ), $.ready.promise).then(function() {

mw.util.addPortletLink("p-cactions", "//tools.wmflabs.org/magog/fileinfo.php?project=en.wikipedia&information=1&authordate=1&license=1&fields=1&src="+ mw.config.get( 'wgTitle' ), "File info");

mw.util.addPortletLink("p-cactions", "//tools.wmflabs.org/magog/oldver.php?project=en.wikipedia&src="+ mw.config.get( 'wgTitle' ), "Old versions");

});

}

/***************************************************************

* added from User:Writ_Keeper/Scripts/massRollback.js *

**************************************************************/

//Mass rollback function

//Written by John254 and modified/rewritten by Writ Keeper; original is at https://en.wikipedia.org/wiki/User:John254/mass_rollback.js

//Adapted from User:Mr.Z-man/rollbackSummary.js

//Instructions: Selecting the "rollback all" tab when viewing a user's contributions history

//will open all rollback links displayed there. (Use with caution)

function rollbackEverythingWKMR() {

$("a[href*='action=rollback']").each(function(ind, el)

{

window.open(el.href, "_blank");

});

}

$.when(mw.loader.using( ["mediawiki.util"] ), $.ready.promise).then(function() {

if(mw.config.get("wgCanonicalSpecialPageName") === "Contributions" && $("span.mw-rollback-link").length) {

mw.util.addPortletLink('p-cactions', 'javascript:rollbackEverythingWKMR()', "rollback all", "ca-rollbackeverything", "rollback all edits displayed here");

}

if (mw.config.get('wgAction') === 'delete') {

$("#wpReason").focus();

}

if ($("#wpReason").val() && mw.util.getParamValue("fromNowCommons")) {

$("#mw-filedelete-submit").click();

}

var ids = [];

function toggle(id) {

for (var i = 0; i < ids.length; i++) {

if (ids[i] === id) {

ids.splice(i, 1);

return false;

}

}

ids.push(id);

return true;

}

function updateLinks() {

$(".mto-go").attr("href", mw.config.get("wgScript") + "?title=Special:RevisionDelete&type=oldimage&target=" +

window.encodeURIComponent(mw.config.get("wgPageName")) + "&ids=" + ids.join(","));

}

$(".mw-revdelundel-link > a").replaceWith(function() {

var $a = $(this);

var href = $a.attr("href");

var id = href.substring(href.lastIndexOf("=") + 1);

var div = $("").append($("Multi").click(function() {

$(this).closest("tr").css("background-color", toggle(id) ? "#f4e097" : "");

updateLinks();

})).append(" | ").append("change visibility");

return div[0];

});

updateLinks();

});