Benutzer:P.Copp/scripts/markunreviewed.js

aus Wikipedia, der freien Enzyklopädie
< Benutzer:P.Copp‎ | scripts
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 27. Februar 2022 um 16:05 Uhr durch imported>Ladsgroup(567577) (Maintenance: Fixing deprecated call to importScriptURI (mw:ResourceLoader/Migration_guide_(users)#importScriptURI)).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Hinweis: Leere nach dem Veröffentlichen den Browser-Cache, um die Änderungen sehen zu können.

  • Firefox/Safari: Umschalttaste drücken und gleichzeitig Aktualisieren anklicken oder entweder Strg+F5 oder Strg+R (⌘+R auf dem Mac) drücken
  • Google Chrome: Umschalttaste+Strg+R (⌘+Umschalttaste+R auf dem Mac) drücken
  • Internet Explorer/Edge: Strg+F5 drücken oder Strg drücken und gleichzeitig Aktualisieren anklicken
  • Opera: Strg+F5
//===========================================================================
// Markiert Text- und Bildverweise auf ungesichtete Seiten mit den CSS-Klassen
// flaggedrevs-unreviewed2 bzw. flaggedrevs-unreviewed
//===========================================================================
var wgScriptPath = mw.config.get('wgScriptPath');
var markUnreviewed = {
	queryUrlLinks : wgScriptPath + '/api.php?action=query&format=json&rawcontinue='
		+ '&prop=flagged&titles=' + mw.config.get('wgPageName') + '&callback=markUnreviewed.storeLinks'
		+ '&generator=links&redirects&gpllimit=max&gplnamespace=0|6|10',
	queryUrlImages : wgScriptPath + '/api.php?action=query&format=json&rawcontinue='
		+ '&prop=flagged&titles=' + mw.config.get('wgPageName') + '&callback=markUnreviewed.storeImages'
		+ '&generator=images&gimlimit=max',
	unreviewedUrls: {},
	oldreviewedUrls: {},
	linksFinished: false,
	imagesFinished: false,
	unreviewedClass: 'flaggedrevs-unreviewed2',
	oldreviewedClass:'flaggedrevs-unreviewed',
	unreviewedText : '(ungesichtet)',
	oldreviewedText: '(wartet auf Sichtung)',
	count : 0,

	storeTitle : function(t,set) {
		t = mw.config.get('wgArticlePath').replace(/\$1/g,encodeURI(t.replace(/ /g,'_'))
			.replace(/'/g,'%27').replace(/~/g,'%7E').replace(/!/g,'%21')
			.replace(/&/g,'%26').replace(/=/g,'%3D').replace(/\+/g,'%2B')
			.replace(/\?/g,'%3F'));
		set[t] = true;
		this.count++;
	},

	storeLinks : function (res) {
		if (res && res.query && res.query.pages) {
			//Store redirect info
			var redirects = {};
			for (var i in res.query.redirects) {
				var r = res.query.redirects[i];
				if (!redirects[r.to]) redirects[r.to] = [];
				redirects[r.to].push(r.from);
			}
			for (var pageid in res.query.pages) {
				var page = res.query.pages[pageid];
				if (page.missing != '' && (page.ns==0 || page.ns==6 || page.ns==10))
					if (!page.flagged) {
						this.storeTitle(page.title,this.unreviewedUrls);
						for (var i in redirects[page.title])
							this.storeTitle(redirects[page.title][i],this.unreviewedUrls);
					} else if (page.flagged.pending_since) {
						this.storeTitle(page.title,this.oldreviewedUrls);
						for (var i in redirects[page.title])
							this.storeTitle(redirects[page.title][i],this.oldreviewedUrls);
					}
			}
		}
		if (res && res['query-continue'])
			mw.loader.load(this.queryUrlLinks + '&gplcontinue='
				+ res['query-continue'].links.gplcontinue);
		else
			this.linksFinished = true;
		if (this.linksFinished && this.imagesFinished && this.count) addOnloadHook(this.markLinks);
	},

	storeImages : function (res) {
		if (res && res.query && res.query.pages)
			for (var pageid in res.query.pages) {
				var page = res.query.pages[pageid];
				if (page.missing != '')
					if (!page.flagged)
						this.storeTitle(page.title,this.unreviewedUrls);
					else if (page.flagged.pending_since)
						this.storeTitle(page.title,this.oldreviewedUrls);
			}
		if (res && res['query-continue'])
			mw.loader.load(this.queryUrlImages + '&gimcontinue='
				+ res['query-continue'].images.gimcontinue);
		else
			this.imagesFinished = true;
		if (this.linksFinished && this.imagesFinished && this.count) addOnloadHook(this.markLinks);
	},

	markLinks : function () {
			var mU = markUnreviewed;
			//add classname to links to unreviewed pages
			var content = document.getElementById('bodyContent')
				|| document.getElementById('mw_contentholder')
				|| document.getElementById('article');
			var links = content.getElementsByTagName('a');
			for (var i = 0; i < links.length; i++)				
				if (mU.unreviewedUrls[links[i].getAttribute('href')]) {
					links[i].className += ' ' + mU.unreviewedClass;
					links[i].title += ' ' + mU.unreviewedText;
				} else if (mU.oldreviewedUrls[links[i].getAttribute('href')]) {
					links[i].className += ' ' + mU.oldreviewedClass;
					links[i].title += ' ' + mU.oldreviewedText;
				}
	}	
};
if (mw.config.get('wgNamespaceNumber') >= 0) {
	if (typeof markUnreviewedImages == 'undefined' || markUnreviewedImages)
		mw.loader.load(markUnreviewed.queryUrlImages);
	else
		markUnreviewed.imagesFinished = true;
	mw.loader.load(markUnreviewed.queryUrlLinks);
}