Enhances Eolymp, a Ukrainian website for coding
当前为
// ==UserScript==
// @name Eolymp+
// @name:mk Eolymp+
// @namespace -
// @version 2
// @description Enhances Eolymp, a Ukrainian website for coding
// @description:mk Ја збогатува Eolymp, украинска веб-страна за кодирање
// @author Plantt
// @match *://www.eolymp.com/*
// @match *://eolymp.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=eolymp.com
// @grant none
// @license CC-BY-ND
// ==/UserScript==
addEventListener("load", () => {
console.log("%c[Eolymp+] %cLoading %cEolymp+", "color:darkgray;font-style:italic", "", "color:#2b9ca0;text-decoration:underline");
window.updatePage = updatePage;
function updatePage() {
console.log("%c[Eolymp+] %cUpdated page", "color:darkgray;font-style:italic", "");
if (localStorage.getItem("hide_fund_banner") == "true") {
document.querySelector("body > main > div.eo-container > div.eo-top-banner").style.display = "none";
}
else {
document.querySelector("body > main > div.eo-container > div.eo-top-banner").style.display = "";
}
document.querySelector("body > main > div.ribbon").style.background =
document.querySelector("body > main > div.eo-container > div.eo-top-banner").style.background = `hsl(${localStorage.getItem("hue") || 182}deg 58% 40%)`;
document.querySelector("body > header").style.background = `hsl(${localStorage.getItem("hue") || 182}deg 58% 35%)`;
document.querySelectorAll(".eo-header__link_darker").forEach(elm => void(elm.style.color = `hsl(${localStorage.getItem("hue") || 182}deg 58% 21%)`));
document.querySelector("body > header > nav:nth-child(4) > a:nth-child(7) > svg").setAttribute("fill", `hsl(${localStorage.getItem("hue") || 182}deg 58% 21%)`);
}
updatePage();
if (/^https?:\/\/www\.eolymp\.com\/..\/settings\/preferences/.test(document.URL)) {
var custPref = document.createElement("fieldset");
custPref.innerHTML = `
<hr>
<h2>Eolymp+</h2>
<div class=form-group>
<label class=control-label for=preferences_theme>Theme</label>
<select id=preferences_theme class=form-control>
<option value=182${localStorage.getItem("hue") == 182 ? " selected" : ""}>Default</option>
<option value=2${localStorage.getItem("hue") == 2 ? " selected" : ""}>Red</option>
<option value=122${localStorage.getItem("hue") == 122 ? " selected" : ""}>Green</option>
<option value=242${localStorage.getItem("hue") == 242 ? " selected" : ""}>Blue</option>
<option value=62${localStorage.getItem("hue") == 62 ? " selected" : ""}>Yellow</option>
<option value=302${localStorage.getItem("hue") == 302 ? " selected" : ""}>Purple</option>
</select>
</div>
<div class=form-group><div class=checkbox>
<label for=preferences_hidefundbanner>
<input type=checkbox id=preferences_hidefundbanner${localStorage.getItem("hide_fund_banner") == "true" ? " checked" : ""}>
Hide funding banner
</label>
</div></div>`;
custPref.querySelector("#preferences_theme").onchange = ev => {
localStorage.setItem("hue", ev.target.value);
updatePage();
};
custPref.querySelector("#preferences_hidefundbanner").onchange = ev => {
localStorage.setItem("hide_fund_banner", ev.target.checked);
updatePage();
};
document.getElementById("preferences").append(custPref);
}
});