Module:Sandbox/Ahecht/flag/redirects/doc

From blackwiki
< Module:Sandbox‎ | Ahecht‎ | flag‎ | redirects
Revision as of 17:12, 12 June 2020 by blackwiki>Ahecht (cleanup)
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 query = {
	action: "query",
	generator: "allpages",
	gapprefix: "Country data ",
	gapnamespace: "10",
	gapfilterredir: "nonredirects",
	gaplimit: "max",
	prop: "redirects",
	rdlimit: "max"
};

pageIDs = {};
redirects = {};

function apiGet(query, cont) {
	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']) {
				console.log("Getting...")
				return apiGet(query, data['continue']);
			} else {
				apiDone();
				return;
			}
		} );
}

function apiDone() {
	console.log("Done!");
	console.log(Object.keys(pageIDs).length + " pages, " + Object.keys(redirects).length + " redirects.");
	output = 'return {\n';
	for (title in redirects) {
		output += '\t["' + title + '"] = "' + redirects[title] + '",\n';
	}
	output += '}';
	console.log(output);
}

apiGet(query);