SteamGifts UI Simplify

Remove unnecessary UI on SteamGifts.

目前为 2019-05-29 提交的版本。查看 最新版本

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

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址