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", "");
}