MediaWiki:Gadget-EditCount2.js: verschil tussen versies
Naar navigatie springen
Naar zoeken springen
(Tekst vervangen door "→* * EDITCOUNT2.JS * * Loads the script from [[User:Rots61/Gadget-EditCount.js]] * Features: [[WikiKids:EditCount]] * Made by [[User:Rots61]] *: mw.loader.load('//...") Label: Vervangen |
|||
| Regel 2: | Regel 2: | ||
* EDITCOUNT2.JS | * EDITCOUNT2.JS | ||
* | * | ||
| − | |||
* Features: [[WikiKids:EditCount]] | * Features: [[WikiKids:EditCount]] | ||
* Made by [[User:Rots61]] | * Made by [[User:Rots61]] | ||
**/ | **/ | ||
| − | mw. | + | |
| + | 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&page=" + | ||
| + | encodeURIComponent(mw.config.get("wgFormattedNamespaces")[2] + ":" + ECgebruikersnaam) + | ||
| + | "&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 19: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&page=" +
encodeURIComponent(mw.config.get("wgFormattedNamespaces")[2] + ":" + ECgebruikersnaam) +
"&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();}