// ==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%");
};