User:Spinster/mixnmatch.js

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
var langs = [ 'en', 'de', 'nl', 'fr', 'it', 'es', 'pl', 'pt', 'sv', 'nl', 'ro', 'nb', 'da', 'sv' ];

if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
	var pagetitle = mw.config.get( 'wgTitle' );
	var label;

	var api = new mw.Api( {
		ajax: {
			headers: { 'Api-User-Agent': 'd:User:Edgars2007/mixnmatch.js' }
		}
	} );

	api.get( {
		action: 'wbgetentities',
		ids: pagetitle,
		props: 'labels'
	} )
	.done( function ( data ) {
		var isjson = data.entities[pagetitle].labels.length;
		if ( !isjson ) {
			var i;
			var my_len = langs.length;
			for ( i = 0; i < my_len; i++ ) {
				if ( data.entities[pagetitle].labels[langs[i]] !== undefined ) {
					label = data.entities[pagetitle].labels[langs[i]].value;
					break;
				}
			}

			if ( label !== undefined ) {
				label = label.replace( /\s\(.*\)/, '' );

				$( function() {
					mw.util.addPortletLink(
						'p-tb',
						'https://tools.wmflabs.org/mix-n-match/?#/search/' + encodeURIComponent( label ),
						"Mix'n'match"
					);
				} );
			} else {
				console.log( "Didn't find label from selected languages" );
			}
		}
	} ).fail( function() {
		console.log( 'Failed' );
	} );
}