User:Fumple/common.js

From Inkipedia, the Splatoon wiki
Revision as of 19:36, 29 August 2019 by Fumple (talk | contribs) (Final version)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
//Check notices
var user = mw.config.get("wgUserName");
if (user != null) {
    waitForApi();
}

function showNotice(){
    console.log("Ready to show")
    new mw.Api().get({
        "action": "parse",
        "format": "json",
        "page": "MediaWiki:Notice/"+user,
        "prop": "text"
    }).done(function (data) {
        console.log("Got notice")
        //Create
        var el = document.createElement("div");
        var el2 = document.createElement("div");
        var el2center = document.createElement("div");
        var el2button = document.createElement("div");
        //el
        el.style.position = "absolute";
        el.style.top = "0";
        el.style.left = "0";
        el.style.height = "100%";
        el.style.width = "100%";
        el.style.background = "#000";
        el.style.opacity = "0.5";
        //el2
        el2.style.position = "absolute";
        el2.style.top = "0";
        el2.style.left = "0";
        el2.style.height = "100%";
        el2.style.width = "100%";
        el2.style.display = "flex";
        el2.style.alignItems = "center";
        el2.style.justifyContent = "center";
        //el2center
        el2center.style.width = "40%";
        el2center.style.fontFamily = '"Lucida Sans Unicode", "Lucida Grande", sans-serif';
        el2center.style.padding = "20px";
        el2center.style.background = "#DDDDDD";
        //el2button
        el2button.style.padding = "10px";
        el2button.style.background = "#0000FF";
        el2button.style.cursor = "pointer";
        el2button.style.color = "#DDDDDD";
        el2button.style.width = "min-content";
        el2button.style.border = "2px solid #DDDDDD";
        el2button.style.marginLeft = "auto";
        el2button.innerText = "Dismiss";
        el2button.onclick = function(e){
            e.target.innerText = "Please wait";
            new mw.Api().get({
                "action": "query",
                "format": "json",
                "meta": "tokens"
            }).done(function(data){
                var token = data.query.tokens.csrftoken;
                new mw.Api().post({
                    "action": "edit",
                    "format": "json",
                    "title": "User:FunPL/Notice",
                    "text": "Notice seen. (AUTO EDIT) <span style="border-radius:8px;background-color:black"><span style="font-family:Splatoon;margin-left:5px">[[User:FunPL| Fun<span style="color:white">P</span><span style="color:red">L</span><b style="color:blue">#0529</b>]] </span> <span style="font-family:Splatoon2;margin-right:5px">[[User talk:FunPL|(talk)]]</span></span> 19:36, 29 August 2019 (UTC)",
                    "summary": "Notice seen. Auto edit.",
                    "minor": 1,
                    "watchlist": "unwatch",
                    "token": token
                }).done(function(data){
                    el.remove();
                    el2.remove();
                    document.body.style.overflowY = "";
                }).fail(function(data){
                    e.target.innerText = "Error!";
                    setTimeout(function(){
                        el.remove();
                        el2.remove();
                        document.body.style.overflowY = "";
                    }, 2000)
                })
            }).fail(function(data){
                e.target.innerText = "Error!";
                setTimeout(function(){
                    el.remove();
                    el2.remove();
                    document.body.style.overflowY = "";
                }, 2000)
            })
        }

        el2center.innerHTML = "<h1>Notice</h1>";
        el2center.innerHTML += data.parse.text["*"];
        el2center.innerHTML += "<br>";
        el2.appendChild(el2center);
        el2center.appendChild(el2button);
        document.body.appendChild(el);
        document.body.appendChild(el2);
        window.scrollTo(0, 0);
        document.body.style.overflowY = "hidden"
    })
}
function waitForApi(){
    if(typeof mw.Api !== "undefined"){
        new mw.Api().get({
            "action": "parse",
            "format": "json",
            "page": "User:"+user+"/Notice",
            "prop": "text|wikitext"
        }).done(function(data){
            if(data.parse.wikitext["*"] == ""){
                showNotice();
            }
            else{
                console.log("Not showing notice. Seen")
            }
        }).fail(function(data){
            showNotice();
        })
    }
    else{
        setTimeout(waitForApi, 250);
    }
}