Jump to content

User:Mainframe98/common.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.
mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Lenore/autolink.js&action=raw&ctype=text/javascript' );

// Mark all pages on Special:Shortpages that are candidates for (speedy) (un)deletion, stubs, set indices or redirects to wiktionary.
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Shortpages' ) {
	mw.loader.using( [ 'mediawiki.api' ] ).then( function() {
		var api = new mw.Api();

		function markLogicalShortPages( continueParams ) {
			var requestParameters = {
				action: 'query',
				format: 'json',
				prop: 'categories',
				generator: 'querypage',
				formatversion: 'latest',
				clcategories: [
					'Category:Candidates for speedy deletion',
					'Category:Candidates for undeletion',
					'Category:All set index articles',
					'Category:All stub articles',
					'Category:All articles proposed for deletion',
					'Category:Redirects to Wiktionary',
					'Category:Redirects to Wikispecies',
					'Category:Redirects to Wikimedia Commons',
					'Category:Wikipedia soft redirects'
				],
				gqppage: 'Shortpages',
				gqplimit: 50,
				maxlag: 5
			};

			for ( var continueParameter in continueParams ) {
				requestParameters[continueParameter] = continueParams[continueParameter];
			}

			api.get( requestParameters ).done( function ( data ) {
				if ( data.error ) {
					console.log( 'Special:Shortpages query failed.', data.error );
					return;
				} else if ( data.batchcomplete !== true && data.continue ) {
					markLogicalShortPages( data.continue );
				}

				for ( var i = 0; i < data.query.pages.length; i++ ) {
					var page = data.query.pages[i];

					if ( !page.categories ) {
						continue;
					}

					var url = mw.Title.makeTitle( page.ns, page.title ).getUrl();

					$( 'a[href$="' + url + '"]' ).css( {
						'text-decoration': 'line-through'
					} );
				}
			} );
		}

		markLogicalShortPages( {} );
	} );
}