Module:Sandbox/Ahecht/flag/redirects/doc
< Module:Sandbox | Ahecht | flag | redirects
Jump to navigation
Jump to search
This is the documentation page for Module:Sandbox/Ahecht/flag/redirects
Generated by the following code:
var api = new mw.Api();
var titlePrefix = "Module:Sandbox/Ahecht/flag/"
pageIDs = {};
redirects = {};
function apiGet(cont) {
var query = {
action: "query",
generator: "allpages",
gapprefix: "Country data ",
gapnamespace: "10",
gapfilterredir: "nonredirects",
gaplimit: "max",
prop: "redirects",
rdlimit: "max"
};
if (cont) {
query = Object.assign(query, cont);
}
api.get( query )
.done (function (data) {
if (data && data.query) {
if (data.query.pages) {
Object.entries(data.query.pages).forEach(function(item) {
if (!/\//.test(item[1].title) ) {
itemTitle = item[1].title.replace(/Template:(?:Flag|Country) data /,'');
pageIDs[itemTitle] = item[1].pageid;
if(item[1].redirects) {
for (var i = 0; i < item[1].redirects.length; i++) {
fromTitle = item[1].redirects[i].title.replace(/Template:(?:Flag|Country) data /,'');
if (fromTitle != itemTitle) { redirects[fromTitle] = itemTitle; }
}
}
}
} );
}
}
if (data && data['continue']) {
showStatus("Getting...")
return apiGet(data['continue']);
} else {
apiDone();
return;
}
} );
}
function apiDone() {
showStatus("Done!");
showStatus(Object.keys(pageIDs).length + " pages, " + Object.keys(redirects).length + " redirects.");
output = 'return {\n';
for (title in redirects) {
output += '\t["' + title + '"] = "' + redirects[title] + '",\n';
}
output += '}';
showStatus(output);
apiPost("redirects", output);
}
function apiPost(alias, text) {
var params = {
action: "edit",
title: titlePrefix + alias.replace(/\s/, "_"),
summary: "Extracting data from templates with prefix [[Template:Country data]]",
text: text
};
api.postWithEditToken( params ).done( function ( data ) {
if ( data && data.edit && data.edit.result && data.edit.result === "Success" ) {
showStatus(
"Edit saved successfully to https:" +
(mw.config.values.wgServer + mw.config.values.wgArticlePath).replace("$1", data.edit.title.replace(/\s/, "_"))
);
} else {
showStatus( "Couldn't save due to error: " + JSON.stringify( data ) );
}
} ).fail( function ( error ) {
showStatus( "Couldn't save due to error: " + JSON.stringify( error ) );
} );
}
function showStatus(status) {
console.log(status);
}
apiGet();