MediaWiki:Common.js/User:Fumple/EditCount.js: Difference between revisions
From Inkipedia, the Splatoon wiki
m (Fumple moved page MediaWiki:Common.js/User:FunPL/EditCount.js to MediaWiki:Common.js/User:Fumple/EditCount.js: Text replacement - "FunPL" to "Fumple") |
(Clean up + more edit categories) |
||
Line 6: | Line 6: | ||
var user = url.searchParams.get("user"); | var user = url.searchParams.get("user"); | ||
var | var alledits = []; | ||
$("#controls").append('<input id="user-edits-name" type="text" placeholder="Username"/> <input id="user-edits-button" type="button" value="Display edit count"/>'); | |||
$("# | |||
$("#load").css("display", "none"); | $("#load").css("display", "none"); | ||
$("#user-edits-button").click(function () { | $("#user-edits-button").click(function () { | ||
$("#user-edits-name").attr("disabled", "") | $("#user-edits-name").attr("disabled", "") | ||
$("#user-edits-button").attr("disabled", "") | $("#user-edits-button").attr("disabled", "") | ||
alledits = []; | |||
new mw.Api().get({ | new mw.Api().get({ | ||
"action": "query", | "action": "query", | ||
"list": "usercontribs", | "list": "usercontribs", | ||
"uclimit": " | "uclimit": "max", | ||
"ucprop": "tags|title", | "ucprop": "tags|title", | ||
"ucuser": $("#user-edits-name")[0].value | "ucuser": $("#user-edits-name")[0].value | ||
Line 60: | Line 32: | ||
} | } | ||
function done(data) { | function done(data) { | ||
alledits = alledits.concat(data.query.usercontribs); | |||
if (data.continue != null) { | if (data.continue != null) { | ||
$("#load").html(`Loading edits... (${alledits.length}/?)<br/>`); | |||
$("#load").html(( | |||
new mw.Api().get({ | new mw.Api().get({ | ||
"action": "query", | "action": "query", | ||
"list": "usercontribs", | "list": "usercontribs", | ||
"uclimit": " | "uclimit": "max", | ||
"ucprop": "tags|title", | "ucprop": "tags|title", | ||
"ucuser": $("#user-edits-name")[0].value, | "ucuser": $("#user-edits-name")[0].value, | ||
Line 81: | Line 51: | ||
return; | return; | ||
} | } | ||
var noredirects = alledits.filter(function (a) { return !a.tags.includes("mw-new-redirect") }); | |||
var filtered = noredirects.filter(function (a) { return a.ns != 2 && a.ns != 3 }).length; | |||
var | var page = noredirects.filter(function (a) { return a.ns % 2 == 0 }).length; | ||
var talk = noredirects.filter(function (a) { return a.ns % 2 == 1 }).length; | |||
var mainspace = noredirects.filter(function (a) { return a.ns == 0 }).length; | |||
var | var mainspacetalk = noredirects.filter(function (a) { return a.ns == 1 }).length; | ||
var meta = noredirects.filter(function (a) { return a.ns == 4 || a.ns == 12 }).length; | |||
var metatalk = noredirects.filter(function (a) { return a.ns == 5 || a.ns == 13 }).length; | |||
var mediawiki = noredirects.filter(function (a) { return a.ns == 8 }).length; | |||
var mediawikitalk = noredirects.filter(function (a) { return a.ns == 9 }).length; | |||
$("#user-edits-name").attr("disabled", null) | $("#user-edits-name").attr("disabled", null) | ||
$("#user-edits-button").attr("disabled", null) | $("#user-edits-button").attr("disabled", null) | ||
$("#load").html( | $("#load").html(alledits.length > 0 ? | ||
`<b>Found ${alledits.length} edits</b><br/> | |||
<ul> | |||
<li><b>${noredirects.length} (${Math.floor(noredirects.length / alledits.length * 100)}%)</b> edits that aren't new redirects</li> | |||
<li style="list-style-image: none; list-style-type: none;"><b>(The following edit counts exclude new redirect creations)</b></li> | |||
<li><b>${filtered } (${Math.floor(filtered / noredirects.length * 100)}%)</b> edits outside the user page/talk namespace</li> | |||
<li><b>${page } (${Math.floor(page / noredirects.length * 100)}%)</b> page edits (excludes talk pages)</li> | |||
<li><b>${talk } (${Math.floor(talk / noredirects.length * 100)}%)</b> talk page edits</li> | |||
<li><b>${mainspace } (${Math.floor(mainspace / noredirects.length * 100)}%)</b> mainspace edits</li> | |||
<li><b>${mainspacetalk} (${Math.floor(mainspacetalk / noredirects.length * 100)}%)</b> mainspace talk page edits</li> | |||
<li><b>${meta } (${Math.floor(meta / noredirects.length * 100)}%)</b> meta edits (Inkipedia:, Help:)</li> | |||
<li><b>${metatalk } (${Math.floor(metatalk / noredirects.length * 100)}%)</b> meta talk page edits (Inkipedia talk:, Help talk:)</li> | |||
<li><b>${mediawiki } (${Math.floor(mediawiki / noredirects.length * 100)}%)</b> MediaWiki: edits</li> | |||
<li><b>${mediawikitalk} (${Math.floor(mediawikitalk / noredirects.length * 100)}%)</b> MediaWiki talk: edits</li> | |||
</ul>` | |||
: "The user either doesn't exist or didn't make any edits that are visible to you"); | |||
$("#load").css("display", ""); | $("#load").css("display", ""); | ||
} | } |
Latest revision as of 15:36, 7 December 2020
//<input id="user-edits-name" type="text" placeholder="Username"/> //<input id="user-edits-button" type="button" value="Display edit count"/> //Load get params var url = new URL(window.location.href); var user = url.searchParams.get("user"); var alledits = []; $("#controls").append('<input id="user-edits-name" type="text" placeholder="Username"/> <input id="user-edits-button" type="button" value="Display edit count"/>'); $("#load").css("display", "none"); $("#user-edits-button").click(function () { $("#user-edits-name").attr("disabled", "") $("#user-edits-button").attr("disabled", "") alledits = []; new mw.Api().get({ "action": "query", "list": "usercontribs", "uclimit": "max", "ucprop": "tags|title", "ucuser": $("#user-edits-name")[0].value }) .done(done) .fail(function (err) { $("#load").html("An unexpected error occured!"); $("#load").css("display", ""); console.log(err) }) }) if(user != null){ $("#user-edits-name")[0].value = user; $("#user-edits-button").click(); } function done(data) { alledits = alledits.concat(data.query.usercontribs); if (data.continue != null) { $("#load").html(`Loading edits... (${alledits.length}/?)<br/>`); new mw.Api().get({ "action": "query", "list": "usercontribs", "uclimit": "max", "ucprop": "tags|title", "ucuser": $("#user-edits-name")[0].value, "uccontinue": data.continue.uccontinue }) .done(done) .fail(function (err) { $("#load").html("An unexpected error occured!"); $("#load").css("display", ""); console.log(err) }) return; } var noredirects = alledits.filter(function (a) { return !a.tags.includes("mw-new-redirect") }); var filtered = noredirects.filter(function (a) { return a.ns != 2 && a.ns != 3 }).length; var page = noredirects.filter(function (a) { return a.ns % 2 == 0 }).length; var talk = noredirects.filter(function (a) { return a.ns % 2 == 1 }).length; var mainspace = noredirects.filter(function (a) { return a.ns == 0 }).length; var mainspacetalk = noredirects.filter(function (a) { return a.ns == 1 }).length; var meta = noredirects.filter(function (a) { return a.ns == 4 || a.ns == 12 }).length; var metatalk = noredirects.filter(function (a) { return a.ns == 5 || a.ns == 13 }).length; var mediawiki = noredirects.filter(function (a) { return a.ns == 8 }).length; var mediawikitalk = noredirects.filter(function (a) { return a.ns == 9 }).length; $("#user-edits-name").attr("disabled", null) $("#user-edits-button").attr("disabled", null) $("#load").html(alledits.length > 0 ? `<b>Found ${alledits.length} edits</b><br/> <ul> <li><b>${noredirects.length} (${Math.floor(noredirects.length / alledits.length * 100)}%)</b> edits that aren't new redirects</li> <li style="list-style-image: none; list-style-type: none;"><b>(The following edit counts exclude new redirect creations)</b></li> <li><b>${filtered } (${Math.floor(filtered / noredirects.length * 100)}%)</b> edits outside the user page/talk namespace</li> <li><b>${page } (${Math.floor(page / noredirects.length * 100)}%)</b> page edits (excludes talk pages)</li> <li><b>${talk } (${Math.floor(talk / noredirects.length * 100)}%)</b> talk page edits</li> <li><b>${mainspace } (${Math.floor(mainspace / noredirects.length * 100)}%)</b> mainspace edits</li> <li><b>${mainspacetalk} (${Math.floor(mainspacetalk / noredirects.length * 100)}%)</b> mainspace talk page edits</li> <li><b>${meta } (${Math.floor(meta / noredirects.length * 100)}%)</b> meta edits (Inkipedia:, Help:)</li> <li><b>${metatalk } (${Math.floor(metatalk / noredirects.length * 100)}%)</b> meta talk page edits (Inkipedia talk:, Help talk:)</li> <li><b>${mediawiki } (${Math.floor(mediawiki / noredirects.length * 100)}%)</b> MediaWiki: edits</li> <li><b>${mediawikitalk} (${Math.floor(mediawikitalk / noredirects.length * 100)}%)</b> MediaWiki talk: edits</li> </ul>` : "The user either doesn't exist or didn't make any edits that are visible to you"); $("#load").css("display", ""); }