User:Jheald/wdcat.js

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
/*
https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=json&query=SELECT%20%3Fitem%20WHERE%20%7B%3Fitem%20wdt%3AP373%20%22Norway%22%20.%20FILTER%20NOT%20EXISTS%20%7B%3Fitem%20wdt%3AP31%20wd%3AQ4167836%7D%20%7D%20LIMIT%201%0A

SELECT ?item ?itemLabel WHERE {
   { 
       SELECT (MIN(?item) AS ?item) WHERE 
         {?item wdt:P373 "Finland" . FILTER NOT EXISTS {?item wdt:P31 wd:Q4167836} } 
   }
   SERVICE wikibase:label {
     bd:serviceParam wikibase:language "en" .
   }
}

*/
(function (mw, $) {

mw.hook('wikipage.content').add(function () {
	if (mw.config.get('wgNamespaceNumber') !== 14 ||
		mw.config.get('wgAction') !== 'view' ||
		!mw.config.get('wgArticleId') ||
		mw.config.get('wgDiffOldId')) {
		return;
	}

	$.getJSON(
		'https://query.wikidata.org/bigdata/namespace/wdq/sparql?format=json&query=SELECT ?item ?itemLabel WHERE { { SELECT (MIN(?item) AS ?item) WHERE {?item wdt:P373 "' + mw.config.get('wgTitle') + '" FILTER NOT EXISTS {?item wdt:P31 wd:Q4167836} } } SERVICE wikibase:label { bd:serviceParam wikibase:language "en" } } ').done(function (data) {
		if (data && data.results && data.results.bindings && data.results.bindings[0] && data.results.bindings[0].item && data.results.bindings[0].item.value) {
			var qnum = data.results.bindings[0].item.value;
			var wdLabel = data.results.bindings[0].itemLabel.value;
			qnum = qnum.replace('http://www.wikidata.org/entity/', '');
			var template = '<div class=\"noprint reasonator-box\" style=\"border: solid #aaa 1px; clear: right; margin: 0 0 1em 1em; font-size: 90%; background: #f9f9f9; width: 250px; padding: 4px; spacing: 0px; text-align: left; float: right;\">\n<div style=\"float: left;\">\n<div class=\"floatnone\"><a href=\"/wiki/File:Reasonator_logo_proposal_no_background.png\" class=\"image\" title=\"Reasonator logo\"><img alt=\"Reasonator logo\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Reasonator_logo_proposal_no_background.png/35px-Reasonator_logo_proposal_no_background.png\" width=\"35\" height=\"35\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Reasonator_logo_proposal_no_background.png/53px-Reasonator_logo_proposal_no_background.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e6/Reasonator_logo_proposal_no_background.png/70px-Reasonator_logo_proposal_no_background.png 2x\" data-file-width=\"481\" data-file-height=\"480\" /></a></div>\n</div>\n<div style=\"margin-left: 40px;\"><b>Reasonator</b> has data and article-links for <span style=\"font-style: italics\" class=\"reasonator-link\"><a class=\"external text\" href=\"https://tools.wmflabs.org/reasonator/?q={{{P301}}}\">{{{PAGENAME}}}</a></span></div>\n</div>';
			template = template.replace('{{{P301}}}', qnum).replace('{{{PAGENAME}}}', wdLabel);
			mw.log("Success: " + qnum);
			$('#mw-category-media, #mw-subcategories, #mw-pages').parent().before($(template));
			//$('#mw-content-text').prepend( $(template) );
		}
	});
});
})(mediaWiki, jQuery);