User:Sreejithk2000/nfurReview.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// <nowiki>

if (mw.config.get("wgAction") === "view" && mw.config.get("wgCanonicalNamespace") === "File") {
	if ($.inArray("Non-free images for NFUR review", mw.config.get("wgCategories")) > -1) {
		var nfurReviewLink = "<center>" + "<a id='nfurReviewLink' href='#'>[append] image has rationale=yes</a>" + "</center>";
		$('table.imbox').find('td.mbox-text').last().append(nfurReviewLink);
	}
}

$('a#nfurReviewLink').click(function (e) {
	"use strict";
	e.preventDefault();
	$('a#nfurReviewLink').replaceWith("Appending ...");

	var query = {
		action: 'query',
		prop: 'revisions',
		titles: mw.config.get("wgPageName"),
		rvprop: 'content',
		format: 'json'
	};

	$.getJSON(mw.util.wikiScript('api'), query, function (result) {
			var content = result.query.pages[wgArticleId].revisions[0]['*'];
			AppendNFurReviewTag(content);
	});
});

function AppendNFurReviewTag(content) {
	"use strict";
	var modifiedContent = content;
	var supportedTemplates = new Array("Non-free album cover", "Non-free film screenshot", "Non-free video cover", "Non-free poster", "Non-free logo", "Non-free historic image", "Non-free movie poster", "Non-free fair use in", "Non-free book cover", "Non-free symbol", "Non-free television screenshot");
	$.each(supportedTemplates, function (index, item) {
		modifiedContent = modifiedContent.replace("{{" + item + "}}", "{{" + item + "|image has rationale=yes}}");
	});

	/* var matchedText = content.match(/\{\{Non-free[^\}]+/i);
	modifiedContent = content.replace(matchedText, matchedText + "|image has rationale=yes"); */

	if (modifiedContent === content) {
		alert("Unable to find matching tag. Please tag the page manually.");
		return;
	}

	var wpEditToken = mw.user.tokens.get('csrfToken');

	var query = {
		action: 'edit',
		prop: 'revisions',
		title: mw.config.get("wgPageName"),
		summary: 'Marking as nfur reviewed using [[User:Sreejithk2000/nfurReview.js]]',
		text: modifiedContent,
		token: wpEditToken,
		format: 'json'
	};

	$.post(mw.util.wikiScript('api'), query, function () {
			alert('Appended nFUR review tag. Refreshing page.');
			document.location = document.location;
	});
}
// </nowiki>