MediaWiki:Gadget-EditCount2.js: verschil tussen versies

Uit Wikikids
Naar navigatie springen Naar zoeken springen
Label: Vervangen
Regel 1: Regel 1:
 
/**
 
/**
* EDITCOUNT.JS
+
* EDITCOUNT2.JS
 
*
 
*
* Loads the editcount for users
+
* Loads the script from [[User:Rots61/Gadget-EditCount.js]]
* 'Adds' special page [[Speciaal:EditCount]]
+
* Features: [[WikiKids:EditCount]]
* But it doesn't really exist though
 
* Gives functionality to the template {{Editcount}}
 
* Based on [[c:en:User:PleaseStand/userinfo.js]], [[c:en:User:Frietjes/masspurge.js]] and [[MediaWiki:Gadget-EditCount.js]]
 
* Thanks [[c:en:User:Chlod]] for helping writing a part of the script.
 
 
* 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 ).then( (ECarticlecount) => { // The new page count we got will be passed here.
 
document.getElementById("ECarticleoutput").innerHTML = ECgebruikersnaam + " heeft " + ECarticlecount + " artikels aangemaakt.";
 
} );
 
}
 
 
function getNewPageCount( ECgebruikersnaam ) {
 
// Create a promise that resolves with the new page count.
 
return new Promise( async (res) => {
 
// Set up persistent variables.
 
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 = await api.get({
 
action: "query",
 
list: "usercontribs",
 
ucprop: "timestamp",
 
uclimit: "500",
 
ucshow: "new",
 
ucnamespace: "0",
 
ucuser: ECgebruikersnaam,
 
// This passes anything we find in `query.continue` into the next request,
 
// so that we keep requesting *new* data instead of previous data.
 
...apiContinue
 
});
 
 
// 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;
 
}
 
 
// Give the number of articles made afterwards. You'll get to use this later.
 
res(ECarticlecount);
 
} );
 
}
 
 
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 6 dec 2022 23:25

/**
 * EDITCOUNT2.JS
 *
 * Loads the script from [[User:Rots61/Gadget-EditCount.js]] 
 * Features: [[WikiKids:EditCount]]
 * Made by [[User:Rots61]] 
**/
mw.loader.load('//wikikids.nl/index.php?title=User:Rots61/Gadget-EditCount.js&action=raw&ctype=text/javascript');
Afkomstig van Wikikids , de interactieve Nederlandstalige Internet-encyclopedie voor en door kinderen. "https://wikikids.nl/index.php?title=MediaWiki:Gadget-EditCount2.js&oldid=752101"