MediaWiki:Common.js/User:Fumple/EditCount.js: Difference between revisions
From Inkipedia, the Splatoon wiki
(FunPL changed the content model of the page MediaWiki:Common.js/User:FunPL/EditCount.js from "wikitext" to "JavaScript": This is JS code) Tag: Content model change |
(Removed msgs system, added handling for no edits, filtered out user talk, added loading via get) |
||
Line 1: | Line 1: | ||
//<input id="user-edits-name" type="text" placeholder="Username"/> | //<input id="user-edits-name" type="text" placeholder="Username"/> | ||
//<input id="user-edits-button" type="button" value="Display edit count"/> | //<input id="user-edits-button" type="button" value="Display edit count"/> | ||
var msgs = [ | |||
//Load get params | |||
var url = new URL(window.location.href); | |||
var user = url.searchParams.get("user"); | |||
/*var msgs = [ | |||
"That user made more than 500 edits. This will take longer...", | "That user made more than 500 edits. This will take longer...", | ||
"Hmm 1000 edits... nice! More time please!", | "Hmm 1000 edits... nice! More time please!", | ||
Line 23: | Line 28: | ||
"10000! OH MY GOD. 10000???", | "10000! OH MY GOD. 10000???", | ||
"Okay no more, 10500", | "Okay no more, 10500", | ||
] | ]*/ | ||
var curredit = 0; | var curredit = 0; | ||
var oldlen = 0; | var oldlen = 0; | ||
Line 49: | Line 55: | ||
}) | }) | ||
}) | }) | ||
if(user != null){ | |||
$("#user-edits-name")[0].value = user; | |||
$("#user-edits-button").click(); | |||
} | |||
function done(data) { | function done(data) { | ||
if (data.continue != null) { | if (data.continue != null) { | ||
Line 75: | Line 85: | ||
var filtered = tempedit.filter(function (a) { return a.tags.indexOf("mw-new-redirect") == -1 }); | var filtered = tempedit.filter(function (a) { return a.tags.indexOf("mw-new-redirect") == -1 }); | ||
filtered = filtered.filter(function (a) { return !a.title.startsWith("User:") }); | filtered = filtered.filter(function (a) { return !a.title.startsWith("User:") }); | ||
filtered = filtered.filter(function (a) { return !a.title.startsWith("User talk:") }); | |||
var newlen = filtered.length; | var newlen = filtered.length; | ||
console.log(data) | console.log(data) | ||
$("#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("Found " + newlen + " proper edits (" + oldlen + " total edits)<br>" + Math.floor(newlen / oldlen * 100) + "% of edits are proper"); | $("#load").html(oldlen > 0 ? "Found " + newlen + " proper edits (" + oldlen + " total edits)<br>" + Math.floor(newlen / oldlen * 100) + "% of edits are proper" : "The user either doesn't exist or has made no edits"); | ||
$("#load").css("display", ""); | $("#load").css("display", ""); | ||
} | } |
Revision as of 11:40, 15 March 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 msgs = [ "That user made more than 500 edits. This will take longer...", "Hmm 1000 edits... nice! More time please!", "1500", "Woah 2000? That's a lot!", "And we keep going... 2500", "User edit counter 3000", "AM I LIKE DISCORD YET? 3500", "WHAT? 4000? DAAMN", "4500", "5000! Okay, this is epic!", "More? cmon! I don't have time to keep writing this!", "6000! Inkoming edits!", "6500! Wow this place is crowded", "7000! I ran out of ideas", "7500! Nevermind, keep going!", "8000! OCTO EXPANSION!?!?!?", "8500! END ALREADY! I want to be done...", "9000!", "IT'S OVER 9000!!!!", "10000! OH MY GOD. 10000???", "Okay no more, 10500", ]*/ var curredit = 0; var oldlen = 0; var tempedit = []; $("#user-edits").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", "") curredit = 0; oldlen = 0; tempedit = []; new mw.Api().get({ "action": "query", "list": "usercontribs", "uclimit": "500", "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) { if (data.continue != null) { oldlen += data.query.usercontribs.length; $("#load").html((msgs[curredit] || oldlen)+"<br>"); curredit++; tempedit = tempedit.concat(data.query.usercontribs); new mw.Api().get({ "action": "query", "list": "usercontribs", "uclimit": "500", "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; } oldlen += data.query.usercontribs.length; tempedit = tempedit.concat(data.query.usercontribs); var filtered = tempedit.filter(function (a) { return a.tags.indexOf("mw-new-redirect") == -1 }); filtered = filtered.filter(function (a) { return !a.title.startsWith("User:") }); filtered = filtered.filter(function (a) { return !a.title.startsWith("User talk:") }); var newlen = filtered.length; console.log(data) $("#user-edits-name").attr("disabled", null) $("#user-edits-button").attr("disabled", null) $("#load").html(oldlen > 0 ? "Found " + newlen + " proper edits (" + oldlen + " total edits)<br>" + Math.floor(newlen / oldlen * 100) + "% of edits are proper" : "The user either doesn't exist or has made no edits"); $("#load").css("display", ""); }