Järjestelmäviesti:Gadget-wikimedia api helpers.js

Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.

  • Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
  • Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
  • Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
  • Opera: Paina Ctrl-F5.
/*
  Scripti hakee MediaWiki API:lla odottavien muutosten määrän täydentää oldreviewedpages.mallineen sisällön sillä.
  Scripti toimii ainoastaan nimiavaruudessa 0.
  - https://www.mediawiki.org/wiki/Extension:FlaggedRevs
  - https://fi.wikipedia.org/w/api.php?action=help&modules=query%2Boldreviewedpages
*/
if ( mw.config.get( 'wgNamespaceNumber' ) > 0 ) {
function fill_oldreviewedpage_counts() {
	$( 'span.oldreviewedpages_count' ).each( function() {
		var target_element = $( this ).find( '.oldreviewedpages_value' );
		var url = '//fi.wikipedia.org/w/api.php?format=json&action=query&list=oldreviewedpages';

		var allowed_params = [
			'orcategory', 'orstart', 'orend', 'ordir', 'ormaxsize',
			'orfilterwatched', 'orfilterredir', 'orlimit', 'ornamespace'
		];
		for ( var i = 0; i < allowed_params.length; i++ ) {
			var orparam_name = allowed_params[i];
			var orparam_value = $( this ).find( '.oldreviewedpages_' + orparam_name ).text().trim();
			if ( orparam_value !== '' ) {
				url += '&' + orparam_name + '=' + encodeURIComponent( orparam_value.replace( / /g, '_' ) );
			}
		}

		$.getJSON( url, function( data ) {
			if ( data && data.query && data.query.oldreviewedpages ) {
				var l = data.query.oldreviewedpages.length;
				$( target_element ).html( l );
			} else {
				var error_msg = 'Error: ';
				if ( data && data.error && data.error.code ) {
					error_msg += data.error.code;
				} else {
					error_msg += 'unknown';
				}
				if ( data && data.error && data.error.info ) {
					error_msg += '; ' + data.error.info;
				}
				alert( error_msg );
			}
		} );
	} );
}

function fill_pendingchangesrss_counts() {
	$( 'span.pendingchanges_count' ).each( function() {
		var target_element = $( this ).find( '.pendingchanges_value' );
		var url = '//fi.wikipedia.org/w/index.php?title=Special:PendingChanges&feed=atom';

		var allowed_params = [
			'category', 'namespace', 'level', 'stable',
			'watched', 'size', 'limit'
		];
		for ( var i = 0; i < allowed_params.length; i++ ) {
			var param_name = allowed_params[i];
			var param_value= $( this ).find( '.pendingchanges_' + param_name ).text().trim();
			if ( param_value !== '' ) {
				url += '&' + param_name + '=' + encodeURIComponent( param_value.replace( / /g, '_' ) );
			}
		}

		$.get( url, function( xml ) {
			var data = $( xml );
			if ( data ) {
				var l = data.find( 'entry' ).length;
				$( target_element ).html( l );
			}
		} );
	} );
}

function fill_feedrecentchangesrss_counts() {
	$( 'span.feedrecentchangesrss_count' ).each(function() {
		var target_element = $( this ).find( '.feedrecentchangesrss_value' );
		var url = '//fi.wikipedia.org/w/api.php?action=feedrecentchanges&feedformat=atom';

		var allowed_params = [
			'namespace', 'limit', 'invert', 'associated', 'days', 'from',
			'hideminor', 'hidebots', 'hideanons', 'hideliu', 'hidepatrolled',
			'hidewikidata', 'hideReviewed', 'hidemyself', 'tagfilter',
			'target', 'showlinkedto'
		];
		for ( var i = 0; i < allowed_params.length; i++ ) {
			var param_name = allowed_params[i];
			var param_value = $( this ).find( '.feedrecentchangesrss_' + param_name ).text().trim();
			if ( param_value !== '' ) {
				url += '&' + param_name + '=' + encodeURIComponent( param_value.replace( / /g, '_' ) );
			}
		}

		$.get( url, function( xml ) {
			var data = $( xml );
			if ( data ) {
				var l = data.find( 'entry' ).length;
				$( target_element ).html( l );
			}
		} );
	} );
}

jQuery( document ).ready( fill_oldreviewedpage_counts );
jQuery( document ).ready( fill_pendingchangesrss_counts );
jQuery( document ).ready( fill_feedrecentchangesrss_counts );
}