MediaWiki:Gadget-EditCount2.js: verschil tussen versies

Uit Wikikids
Naar navigatie springen Naar zoeken springen
Label: Vervangen
Regel 2: Regel 2:
 
  * EDITCOUNT2.JS
 
  * EDITCOUNT2.JS
 
  *
 
  *
* Loads the script from [[User:Rots61/Gadget-EditCount.js]]
 
 
  * Features: [[WikiKids:EditCount]]
 
  * Features: [[WikiKids:EditCount]]
 
  * Made by [[User:Rots61]]  
 
  * Made by [[User:Rots61]]  
 
**/
 
**/
mw.loader.load('//wikikids.nl/index.php?title=User:Rots61/Gadget-EditCount.js&action=raw&ctype=text/javascript');
+
 
 +
const 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;
 +
});
 +
getNewPageCount( ECgebruikersnaam() );
 +
}
 +
 
 +
function getNewPageCount( ECgebruikersnaam ) {
 +
        var apiContinue = {};
 +
        var ECarticlecount = 0;
 +
        // 'apiContinue' ('query.continue') becomes 'undefined' if there is nothing left
 +
        // to query, so we'll check for this condition and stop when that happens.
 +
        while (apiContinue !== undefined) {
 +
            // Check for user contributions
 +
            const query = api.get({
 +
                action: "query",
 +
                list: "usercontribs",
 +
                ucprop: "timestamp",
 +
                uclimit: "500",
 +
                ucshow: "new",
 +
                ucnamespace: "0",
 +
                ucuser: ECgebruikersnaam,
 +
                ...apiContinue.uccontinue
 +
                ...apiContinue.continue
 +
                // This passes anything we find in 'query.continue' into the next request,
 +
                // so that we keep requesting *new* data instead of previous data.
 +
            });
 +
           
 +
            // Add the contributions we find into the count.
 +
            ECarticlecount += query.query.usercontribs.length;
 +
            // Set 'apiContinue'. This will also set it to 'undefined' if there's nothing left.
 +
            apiContinue = query.continue;
 +
        }
 +
       
 +
        document.getElementById("ECarticleoutput").innerHTML = ECgebruikersnaam + " heeft " + ECarticlecount + " artikels aangemaakt.";
 +
    }
 +
 
 +
function Button() {
 +
        var ECgebruikersnaam = document.getElementById('user').value ;
 +
        location.href = "https://wikikids.nl/Speciaal:Editcount2?user=" + ECgebruikersnaam;
 +
}
 +
 
 +
function ECsjabloon() {
 +
var ECgebruikersnaam = document.getElementById("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("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 pagina\'s hij heeft aangemaakt.<br>'
 +
    + 'Druk op enter, om het aantal bewerkingen op te halen. Dit kan een paar seconden duren. </b></br>'
 +
+ 'Vul hier de naam in: '
 +
+ '<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("DisabledEditCount").innerHTML) {
 +
document.getElementById("DisabledEditCount").innerHTML = "";
 +
ECsjabloon();}

Versie van 7 dec 2022 18:12

/**
 * EDITCOUNT2.JS
 *
 * Features: [[WikiKids:EditCount]]
 * Made by [[User:Rots61]] 
**/

const 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;
		});
		getNewPageCount( ECgebruikersnaam() );
}

function getNewPageCount( ECgebruikersnaam ) {
        var apiContinue = {};
        var ECarticlecount = 0;
        // 'apiContinue' ('query.continue') becomes 'undefined' if there is nothing left
        // to query, so we'll check for this condition and stop when that happens.
        while (apiContinue !== undefined) {
            // Check for user contributions
            const query = api.get({
                action: "query",
                list: "usercontribs",
                ucprop: "timestamp",
                uclimit: "500",
                ucshow: "new",
                ucnamespace: "0",
                ucuser: ECgebruikersnaam,
                ...apiContinue.uccontinue
                ...apiContinue.continue
                // This passes anything we find in 'query.continue' into the next request,
                // so that we keep requesting *new* data instead of previous data.
            });
            
            // Add the contributions we find into the count.
            ECarticlecount += query.query.usercontribs.length;
            // Set 'apiContinue'. This will also set it to 'undefined' if there's nothing left.
            apiContinue = query.continue;
        }
        
        document.getElementById("ECarticleoutput").innerHTML = ECgebruikersnaam + " heeft " + ECarticlecount + " artikels aangemaakt.";
    } 

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

function ECsjabloon() {
		var ECgebruikersnaam = document.getElementById("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("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 pagina\'s hij heeft aangemaakt.<br>'
    + 'Druk op enter, om het aantal bewerkingen op te halen. Dit kan een paar seconden duren. </b></br>'
	+ 'Vul hier de naam in: '
	+ '<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("DisabledEditCount").innerHTML) {
document.getElementById("DisabledEditCount").innerHTML = ""; 
ECsjabloon();}
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=MediaWiki:Gadget-EditCount2.js&oldid=752256"