MediaWiki:Gadget-showNonFreeImages.js

A Wikipédiából, a szabad enciklopédiából

Megjegyzés: közzététel után frissítened kell a böngésződ gyorsítótárát, hogy lásd a változásokat.

  • Firefox / Safari: tartsd lenyomva a Shift gombot és kattints a Frissítés gombra a címsorban, vagy használd a Ctrl–F5 vagy Ctrl–R (Macen ⌘–R) billentyűkombinációt
  • Google Chrome: használd a Ctrl–Shift–R (Macen ⌘–Shift–R) billentyűkombinációt
  • Internet Explorer / Edge: tartsd nyomva a Ctrl-t, és kattints a Frissítés gombra, vagy nyomj Ctrl–F5-öt
  • Opera: Nyomj Ctrl–F5-öt
(function ( $, mw ) {
	/**
	 * @return jQuery.Promise<jQuery>
	 */
	function getNonFreeImages() {
		return mw.loader.using( [ 'mediawiki.Title', 'mediawiki.api', 'mediawiki.util' ] ).then( function () {
			var api = new mw.Api();
			return api.get( {
				action: 'query',
				titles: mw.config.get( 'wgPageName' ),
				generator: 'images',
				gimlimit: 500,
				prop: 'imageinfo',
				iiprop: 'extmetadata',
				iiextmetadatafilter: 'NonFree',
			} ).then( function ( data ) {
				var nonFreeImages;

				nonFreeImages = !data.query ? $( [] ) : $.map( data.query.pages, function ( data, id ) {
					var title = new mw.Title( data.title ),
						metadata = data.imageinfo[0].extmetadata,
						isFree = !metadata || !metadata.NonFree,
						encTitle = mw.util.rawurlencode( title.getMain() ),
						selector = 'img[src^="//upload.wikimedia.org/"][src*="/' + encTitle + '/"],img[src^="//upload.wikimedia.org/"][src$="/' + encTitle + '"]';

					return isFree ? null : $( selector ).get();
				} );

				return $( nonFreeImages );
			} );
		} );
	}

	function addBorderToNonFreeImages() {
		getNonFreeImages().then( function ( $images ) {
			$images.addClass( 'nonFreeImageLink' );
		} );
	}

	mw.hook( 'wikipage.content' ).add( addBorderToNonFreeImages );
} ) ( jQuery, mediaWiki );