Hoppa till innehållet

MediaWiki:Gadget-NetDiffSinceLastVisitedWL.js

Från Wikipedia

OBS: Efter du har publicerat sidan kan du behöva tömma din webbläsares cache för att se ändringarna.

  • Firefox / Safari: Håll ned Skift och klicka på Uppdatera sidan eller tryck Ctrl-F5 eller Ctrl-R (⌘-R på Mac)
  • Google Chrome: Tryck Ctrl-Skift-R (⌘-Skift-R på Mac)
  • Edge Håll ned Ctrl och klicka på Uppdatera eller tryck Ctrl-F5.
  • Opera: Tryck Ctrl-F5.
$( function() {
	if ( mw.config.get( 'wgCanonicalSpecialPageName' ) != 'Watchlist') {
		return;
	}
	var nd = $( '<span><a title="Nettodiff sedan senaste besöket" href="#">nd</a></span>' );

	nd.click( function( e ) {
		e.preventDefault();

		var target = $( this ).parents( '.mw-changeslist-line-inner' ).attr( 'data-target-page' );
		var api = new mw.Api();

		api.get( {
			action:	'query',
			prop:	'info',
			inprop:	'notificationtimestamp',
			titles:	target,
			format:	'json'
		} ).then( function( d ) {
			var timestamp,
				p;

			if ( !d.query || !d.query.pages ) {
				return $.Deferred().reject( 'no query or pages' );
			}

			for ( p in d.query.pages ) {
				timestamp = d.query.pages[ p ].notificationtimestamp;
			}

			if ( !timestamp ) {
				return $.Deferred().reject( 'no notificationtimestamp' );
			}

			return api.get( {
				action:	'query',
				prop:	'revisions',
				titles:	target,
				rvstart: timestamp,
				rvlimit: 1,
				format:	'json'
			} );
		} ).done( function( d ) {
			var oldid,
				p;

			if ( !d.query || !d.query.pages ) {
				return $.Deferred().reject( 'get revisions error' );
			}

			for ( p in d.query.pages ) {
				if ( !d.query.pages[ p ].revisions ) {
					return $.Deferred().reject( 'no revisions' );
				}
				oldid = d.query.pages[ p ].revisions[ 0 ].parentid;
			}

			if ( !oldid ) {
				return $.Deferred().reject( 'no oldid' );
			}
			window.location.href ="https://sv.wikipedia.org/w/index.php?diff=cur&oldid=" + oldid;
		} ).fail( function( f ) {
			console.log( "Net diff fail: " + f );	
		} );
	} );

	$( '.mw-changeslist-watchedunseen.mw-changeslist-edit .mw-changeslist-links:first-child' ).append( nd );
});