Gebruiker:Rots61/Gadget-EditCount.js

Uit Wikikids
Naar navigatie springen Naar zoeken springen

Let op! Nadat je de veranderingen hebt opgeslagen, moet je de cache van je browser nog legen om ze daadwerkelijk te zien.

Mozilla (incl. Firefox) ctrl-shift-r
IE ctrl-f5
Opera f5
Safari cmd-r
Konqueror f5
/**
 * EDITCOUNT2.JS
 *
 * Features: [[WikiKids:EditCount]]
 * Credits: [[WikiKids:EditCount#Dank]]
 * Made by [[User:Rots61]] 
**/

// Create a mw.Api instance to make API requests easier.
var api = new mw.Api();

function getEC() {
		// Request the user's information from the API.
		var ECgebruikersnaam = "";
		if (document.getElementById("user").value.length == 0) {
		if (document.location.href.indexOf('?user=') != -1) {
		ECgebruikersnaam = document.location.href.substring(document.location.href.indexOf('?user=')+6, document.location.href.length);}
		else { ECgebruikersnaam = document.getElementById("user").value; }}
		api.get( {
		    action: 'query',
		    list: 'users',
		    usprop: 'blockinfo|editcount|gender',
		    ususers: ECgebruikersnaam,
		} ).done( function ( query ) {
			// When response arrives extract the information we need.
			if(!query.query) { return; } // Suggested by Gary King to avoid JS errors --PS 2010-08-25
			query = query.query;
			var user, invalid, missing, editcount, blocked, gender;
			try {
				user = query.users[0];
				invalid = typeof user.invalid != "undefined";
				missing = typeof user.missing != "undefined";
				editcount = (typeof user.editcount == "number") ? user.editcount : null;
				blocked = typeof user.blockedby != "undefined";
				gender = (typeof user.gender == "string") ? user.gender : null;
			 } catch(e) {
				return; // Not much to do if the server is returning an error (e.g. if the username is malformed).
			}
		 // Format the information for on-screen display
			var statusText = "";

			if (missing||invalid) {
				statusText += "<i>" + ECgebruikersnaam + "</i> bestaat niet.";
			} else {
				statusText = "<a href=\"" + mw.config.get("wgScriptPath") + encodeURIComponent(mw.config.get("wgFormattedNamespaces")[2] + ":" + ECgebruikersnaam) + "\">" + ECgebruikersnaam + "</a> ";
			} 

			if(blocked) {
				statusText += "<a href=\"" + mw.config.get("wgScriptPath") +
					"/index.php?title=Special:Log&amp;page=" + 
					encodeURIComponent(mw.config.get("wgFormattedNamespaces")[2] + ":" + ECgebruikersnaam) +
					"&amp;type=block\">is geblokkeerd</a> en ";
			}
			// Edit count
			if(editcount !== null) {
				statusText += " heeft " + editcount + " bewerkingen gedaan.";
			}
			document.getElementById("ECoutput").innerHTML = statusText;
		});
// Get the number of articles made
getNewPageCount( ECgebruikersnaam ).then( function (ECarticlecount) { // The new page count we got will be passed here.
    document.getElementById("ECarticleoutput").innerHTML = 
        ECgebruikersnaam + " heeft " + ECarticlecount + " artikels aangemaakt."; // Username has 0 articles created. 
} );
}

function getNewPageCount( ECgebruikersnaam, apiContinue ) {    
    return api.get( {
        action: "query",
        list: "usercontribs",
        ucprop: "timestamp",
        uclimit: "500",
        ucshow: "new",
        ucnamespace: "0",
        ucuser: ECgebruikersnaam,
        uccontinue: apiContinue ? apiContinue.uccontinue : undefined
    } ).then( function (data) {
        if ( data.continue ) {
            return getNewPageCount( ECgebruikersnaam, data.continue )
                .then( function ( addedLength ) { 
                    return addedLength + data.query.usercontribs.length;
                } );
        } else {
            return data.query.usercontribs.length;
        }
    } );
}

function Button() {
        var ECgebruikersnaam = document.getElementById('user').value ;
        location.href = "https://wikikids.nl/Speciaal:Editcount2?user=" + ECgebruikersnaam;
}

function ECsjabloon() {
		var ECgebruikersnaam = document.getElementById("Gadget-EditCount").innerHTML;
		api.get( {
		    action: 'query',
		    list: 'users',
		    usprop: 'editcount',
		    ususers: ECgebruikersnaam,
		} ).done( function ( query ) {
			// When response arrives extract the information we need.
			if(!query.query) { return; } // Suggested by Gary King to avoid JS errors --PS 2010-08-25
			query = query.query;
			var user, invalid, missing, editcount;
				user = query.users[0];
				invalid = typeof user.invalid != "undefined";
				missing = typeof user.missing != "undefined";
				editcount = (typeof user.editcount == "number") ? user.editcount : null;
			var statusText;
			
			// Edit count
			if(editcount !== null) {
				statusText = editcount ;
			}
if (missing||invalid) {
				statusText = "ERROR";
			} 		document.getElementById("Gadget-EditCount").innerHTML = statusText;
		});
}

function ECpage() {
	var bodyContent = 'bodyContent';
	document.getElementsByTagName("h1")[0].textContent = "EditCount";
	document.title = "EditCount - WikiKids";
	document.getElementById(bodyContent).innerHTML = '<form id="ECform" name="ECform">'
	+ '<b>Bekijk hier hoeveel bewerkingen iemand heeft gedaan. En hoeveel artikels hij heeft gemaakt. <br>'
        + 'Druk op enter, om het aantal bewerkingen op te halen. Dit kan een paar seconden duren. </b></br>'
	+ 'Gebruiker: '
	+ '<input type="text" name="user" id="user" size="30"></textarea>'
	+ '<button onclick="Button()">Gaan!</button>'
	+ '</form><br><div id="ECoutput"></div><div id="ECarticleoutput"></div>';
	if (document.location.href.indexOf('?user=') != -1) { getEC(); }
}

if(mw.config.get('wgNamespaceNumber') === -1 && (mw.config.get('wgTitle') === "Editcount" || mw.config.get('wgTitle') === "EditCount")
) {
	$.when( $.ready, mw.loader.using(['mediawiki.util'])).done( ECpage );
} else if (document.getElementById("Gadget-EditCount-Disabled")) {
document.getElementById("Gadget-EditCount-Disabled").innerHTML = ""; 
ECsjabloon();}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=Gebruiker:Rots61/Gadget-EditCount.js&oldid=752826"