iEMB+

Makes the new iEMB more tolerable

От 04.11.2017. Виж последната версия.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да инсталирате разширение, като например Tampermonkey .

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         iEMB+
// @namespace    http://yeoxingyee.ml/
// @version      1.0
// @description  Makes the new iEMB more tolerable
// @author       YXY
// @match        *://iemb.hci.edu.sg/*
// @grant        none
// ==/UserScript==
window.onload=function(){
    var link = document.createElement("link");
    link.href = "https://dl.dropboxusercontent.com/s/yed55pppaod34jd/iemb%2B.css";
    link.type = "text/css";
    link.rel = "stylesheet";
    link.id = "darkMode";
    var script = document.createElement("script");
    script.src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js";
    if(localStorage.getItem("iEMBDark") == "1") document.getElementsByTagName("head")[0].appendChild(link);
    document.getElementsByTagName("head")[0].appendChild(script);
    var firstTime = localStorage.getItem("iEMBFirst");
    if(!firstTime){
        window.alert("Welcome to iEMB+!\nThis is a mini tutorial on how to use this script!\n(Click OK to continue)");
        window.alert("Firstly, the read all button will read everything! (Refresh after the reload to make sure everything's read) \nTip: 1/3");
        window.alert("Next, you can toggle dark/light mode by clicking the button in the top menu! \nTip: 2/3");
        window.alert("Lastly, change your profile picture by clicking on it! \nTip: 3/3");
        window.alert("And... that's it! If you have any questions / feedback contact me at \"[email protected]\" with the subject heading of \"iEMB+ Feedback!\"\nEnjoy!");
        localStorage.setItem("iEMBFirst", "1");
    }
    var dp = localStorage.getItem("profilePic");
    if(!dp){
        dp = window.prompt("Profile pic not set! \n Please enter a direct link to the image that you want for your profile picture!");
        $('.iemb_user_left>img').attr('src', dp);
        localStorage.setItem("profilePic", dp);
    }
    console.log("iEMB+: Initialising...");
    var verbose = document.createElement("div");
    verbose.id = "verbose";
    document.getElementsByTagName("body")[0].appendChild(verbose);
    $("#verbose").css("background","#000");
    $("#verbose").css("opacity", "0.6");
    $("#verbose").css("color", "white");
    $("#verbose").css("position", "fixed");
    $("#verbose").css("top", "0");
    $("#verbose").css("pointer-events", "none");
    var x = $('.messageboard').length;
    $("#allMsg a em").text(x);
    var reader = '<button id="reader" onClick="autoread()"><a style="text-decoration: none; font-weight: normal;" href="#">Read All</a></button>';
    $(".unread_mess_bg").append(reader);
    var scriptinject = document.createElement("script");
    scriptinject.innerHTML = ["var i = 0;",
                              "var x = $('.messageboard').length;",
                              "function autoread(){",
                              "  document.getElementById('verbose').innerHTML += 'iEMB+: Running checks...<br />';",
                              "  document.getElementById('verbose').innerHTML += 'iEMB+: '+ x + ' messages remaining to read.<br />';",
                              "  $('#reader a').text('Reading all messages...');",
                              "  if (x=='0'){",
                              "    $('#reader a').text('All Messages are already Read!');",
                              "    setTimeout(function() { $('#reader a').text('Read All'); }, 2000);",
                              "    return;",
                              "  }",
                              "  var iframeread;",
                              "    iframeread = document.createElement('iframe');",
                              "    document.body.appendChild(iframeread);",
                              "    iframeread.height = '0';",
                              "    iframeread.src = $('a.messageboard')[i].href;",
                              "    x--;",
                              "    i++;",
                              "  checkread();",
                              "}",
                              "function checkread(){",
                              "  if (!x){",
                              "    document.getElementById('verbose').innerHTML += 'Done!<br />';",
                              "    $('#reader a').text('Done!');",
                              "    location.reload();",
                              "  }",
                              "else if(x) {",
                              "    document.getElementById('verbose').innerHTML += 'iEMB+: Not done yet! rerunning...<br />';",
                              "    autoread();",
                              "  }",
                              "}",
                              "    function setDP(){",
                              "    var dp = localStorage.getItem('profilePic');",
                              "    $('.iemb_user_left>img').attr('src', dp);",
                              "    $('.iemb_user_left>img').css('border-radius', '100%');",
                              "}",
                              "    function changeDP(){",
                              "    var newdp = window.prompt('Enter URL of new image for your profile picture!');",
                              "    localStorage.setItem('profilePic', newdp);",
                              "    setDP();",
                              "}",

                             ].join('\n');
    document.getElementsByTagName("head")[0].appendChild(scriptinject);
    var iframe = document.createElement("iframe");
    $('img[alt="Important"]').css("filter", "invert(0)");
    $('img[alt="Urgent"]').css("filter", "invert(0)");
    $('img[alt="Information"]').css("filter", "invert(0)");
    setDP();
    $('.iemb_user_left>img').click(function(){ changeDP();});
    $('.iemb_user_left>img').css("height", "40");
    $('.iemb_user_left>img').css("width", "40");
    var toggleDark;
    if(localStorage.getItem("iEMBDark") == "0"){
        toggleDark = '<li style="text-align:center;"><a href="#" id="DarkToggle"><i class="fa fa-moon-o" aria-hidden="true"></i><br />Dark Mode</a></li>';
    }
    else if(localStorage.getItem("iEMBDark") == "1"){
        toggleDark = '<li style="text-align:center;"><a href="#" id="DarkToggle"><i class="fa fa-sun-o" aria-hidden="true"></i><br />Light Mode</a></li>';
    }
    $(toggleDark).insertBefore("#iemb_topnav .drop");
    console.log("iEMB+: Initialisation complete! All systems green!");
    $("#DarkToggle").click(function() {
        if($("#darkMode").length){
            $("#darkMode").remove();
            document.getElementById("DarkToggle").innerHTML = "<i class='fa fa-moon-o' aria-hidden='true'></i><br />Dark Mode";
            localStorage.setItem('iEMBDark', "0");
            return;
        }
        if(!$("#darkMode").length){
            document.getElementsByTagName("head")[0].appendChild(link);
            document.getElementById("DarkToggle").innerHTML = "<i class='fa fa-sun-o' aria-hidden='true'></i><br />Light Mode";
            localStorage.setItem('iEMBDark', "1");
        }
    });
};