iEMB+

Makes the new iEMB more tolerable

目前為 2017-11-09 提交的版本,檢視 最新版本

// ==UserScript==
// @name         iEMB+
// @namespace    http://yeoxingyee.ml/
// @version      1.0.3
// @description  Makes the new iEMB more tolerable
// @author       YXY
// @match        *://iemb.hci.edu.sg/*
// @exclude      *://iemb.hci.edu.sg/Board/ShowFile*
// @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!');",
                              "    if(newdp){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");
    $('.iemb_user_left>img').css("background-size", "cover");
    var toggleDark;
    if(localStorage.getItem("iEMBDark") == "0" || !localStorage.getItem("iEMBDark")){
        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");
        }
    });
    $(".iemb_sidebar").css("height", "auto");
    $(".iemb_sidebar").css("min-height", "100%");
};