// ==UserScript==
// @name SteamGifts UI Simplify
// @version 1.0.2
// @description Remove unnecessary UI on SteamGifts.
// @author Hayao-Gai
// @namespace https://github.com/HayaoGai
// @icon https://i.imgur.com/2s73pG4.jpg
// @include https://www.steamgifts.com/*
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==
(function() {
"use strict";
let feature, copies, entered1, entered2, forum1, forum2, forum3, ad1, ad2, ad3, ad4;
const setting = document.createElement("div");
// Icons Credit:
// Freepik (https://www.freepik.com/) from Flaticon (https://www.flaticon.com/) is licensed by CC 3.0 (http://creativecommons.org/licenses/by/3.0/).
// Nikita Golubev (https://www.flaticon.com/authors/nikita-golubev) from Flaticon (https://www.flaticon.com/) is licensed by CC 3.0 (http://creativecommons.org/licenses/by/3.0/).
const icon0 = "https://i.imgur.com/ZiXG9Ly.png";
const icon1 = "https://i.imgur.com/eCGgwU1.png";
const icon2 = "https://i.imgur.com/ns1qies.png";
const icon3 = "https://i.imgur.com/OkoY4p8.png";
const icon4 = "https://i.imgur.com/9b8iw8W.png";
const icon5 = "https://i.imgur.com/aiHKJ2p.png";
const gmToggle1 = "data_Feature";
const gmToggle2 = "data_Copies";
const gmToggle3 = "data_Entered";
const gmToggle4 = "data_Footer";
const gmToggle5 = "data_Ad";
let doneSlide = true;
initialization();
window.addEventListener("load", () => {
createButton();
createMenu();
createOption();
});
function initialization() {
feature = $(".featured__container");
copies = $(".pinned-giveaways__outer-wrap");
entered1 = $(".is-faded").parent();
entered2 = $(".sidebar__entry-custom.sidebar__entry-delete:not(.is-hidden)").parent().parent().parent().parent().parent().parent();
forum1 = $('[href="https://www.patreon.com/steamgifts"]');
forum2 = $('[href="/discussions/deals"]').parent().parent().parent();
forum3 = $(".footer__outer-wrap");
ad1 = $("#div-gpt-ad-1550007148885-0").parent();
ad2 = $("#div-gpt-ad-1495081989394-1").parent();
ad3 = $("#div-gpt-ad-1495081989394-2").parent();
ad4 = $("#div-gpt-ad-1495081989394-0").parent();
deleteUI();
//slideUI(gmToggle1);
//slideUI(gmToggle2);
//slideUI(gmToggle3);
//slideUI(gmToggle4);
//slideUI(gmToggle5);
}
function createButton() {
// 按鈕
const topBar = document.querySelector(".nav__right-container");
setting.setAttribute("id", "simplify_setting");
setting.setAttribute("class", "nav__button-container nav__button-container--notification nav__button-container--inactive");
$(document.body).on("click", "#simplify_setting", () => { if ($("#simplify_menu").css("display") === "none") slideMenu(); });
topBar.insertBefore(setting, topBar.childNodes[0]);
// 樣式
const setting1 = document.createElement("div");
setting1.setAttribute("title", "SteamGifts UI Simplify");
setting1.setAttribute("class", "nav__button fa");
setting1.style.width = "13px";
setting1.style.height = "29px";
setting.appendChild(setting1);
// 圖片
const setting2 = document.createElement("img");
setting2.src = icon0;
const style = setting2.style;
style.position = "relative";
style.width = "15px";
style.height = "15px";
style.top = "5px";
style.right = "1px";
setting1.appendChild(setting2);
}
function createMenu() {
// 選單的樣式
const drop = document.createElement("div");
drop.setAttribute("id", "simplify_drop");
drop.style.position = "relative";
setting.appendChild(drop);
const menu = document.createElement("div");
menu.setAttribute("id", "simplify_menu");
menu.setAttribute("class", "nav__absolute-dropdown");
const styleMenu = menu.style;
styleMenu.display = "none";
styleMenu.width = "275px";
styleMenu.height = "250px";
styleMenu.left = "-37px";
styleMenu.top = "35px";
drop.appendChild(menu);
// 監聽
let onMenu = true;
menu.addEventListener("mouseenter", () => { onMenu = false; });
menu.addEventListener("mouseleave", () => { onMenu = true; });
window.addEventListener("mouseup", () => {
const $menu = $("#simplify_menu");
if (!onMenu || !doneSlide || $menu.css("display") === "none") return;
slideMenu();
});
}
function createOption() {
singleOption(icon1, "Feature Giveaway", gmToggle1);
singleOption(icon2, "50+ Copies Giveaway", gmToggle2);
singleOption(icon3, "Entered Giveaway", gmToggle3);
singleOption(icon4, "Forum", gmToggle4);
singleOption(icon5, "Advertisement<br/><span style='font-size:50%;color:red'>Need to refresh page.<span>", gmToggle5);
}
function singleOption(strImg, strName, gmKey) {
// 按鈕
const button = document.createElement("div");
button.setAttribute("id", gmKey);
button.setAttribute("class", "nav__row");
button.style.height = "25px";
// 圖示
const icon = document.createElement("img");
icon.src = strImg;
icon.setAttribute("class", "icon-grey fa fa-fw");
button.appendChild(icon);
// 名稱
const name = document.createElement("div");
name.setAttribute("class", "nav__row__summary__name");
name.innerHTML = strName;
name.style.marginLeft = "15px";
button.appendChild(name);
// 勾選框
const select = document.createElement("div");
const status = GM_getValue(gmKey, false) ? "form__checkbox cb__yes is-selected" : "form__checkbox cb__yes is-disabled";
select.setAttribute("class", status);
select.style.position = "absolute";
select.style.right = "10px";
button.appendChild(select);
// 勾選: Default
const toggle1 = document.createElement("i");
toggle1.setAttribute("class", "form__checkbox__default fa fa-circle-o");
select.appendChild(toggle1);
// 勾選: Hover
const toggle2 = document.createElement("i");
toggle2.setAttribute("class", "form__checkbox__hover fa fa-circle");
select.appendChild(toggle2);
// 勾選: Selected
const toggle3 = document.createElement("i");
toggle3.setAttribute("class", "form__checkbox__selected fa fa-check-circle");
toggle3.style.color = "hsla(90, 39%, 47%, 1)";
select.appendChild(toggle3);
document.getElementById("simplify_menu").appendChild(button);
// 點按事件
$("#simplify_setting").on("click", "#" + gmKey, event => {
event.stopPropagation();
saveChange(select, gmKey);
slideUI(gmKey);
});
}
function saveChange(select, key) {
const current = GM_getValue(key, false);
if (!current) {
select.classList.remove("is-disabled");
select.classList.add("is-selected");
GM_setValue(key, true);
} else {
select.classList.remove("is-selected");
select.classList.add("is-disabled");
GM_setValue(key, false);
}
}
function deleteUI() {
if (!(window.location.href.includes("giveaway") && !window.location.href.includes("giveaways"))) if (GM_getValue(gmToggle1, false)) feature.css("display", "none");
if (GM_getValue(gmToggle2, false)) copies.css("display", "none");
if (GM_getValue(gmToggle3, false)) { entered1.css("display", "none"); entered2.css("display", "none"); }
if (GM_getValue(gmToggle4, false)) { forum1.css("display", "none"); forum2.css("display", "none"); forum3.css("display", "none"); }
if (GM_getValue(gmToggle5, false)) { ad1.remove(); ad2.remove(); ad3.remove(); ad4.remove(); }
}
function slideUI(key) {
const gm = GM_getValue(key, false);
if (key === gmToggle1) {
if (gm) feature.slideUp();
else feature.slideDown();
}
else if (key === gmToggle2) {
if (gm) copies.slideUp();
else copies.slideDown();
}
else if (key === gmToggle3) {
if (gm) { entered1.slideUp(); entered2.slideUp(); }
else { entered1.slideDown(); entered2.slideDown(); }
}
else if (key === gmToggle4) {
if (gm) { forum1.slideUp(); forum2.slideUp(); forum3.slideUp(); }
else { forum1.slideDown(); forum2.slideDown(); forum3.slideDown(); }
}
else {
if (gm) { ad1.remove(); ad2.remove(); ad3.remove(); ad4.remove(); }
}
}
function slideMenu() {
doneSlide = false;
$("#simplify_menu").slideToggle("fast", () => { doneSlide = true; });
}
})();