Yet Another Enhanced Steam

Enhanced Steam!

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Yet Another Enhanced Steam
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  Enhanced Steam!
// @author       mout.me
// @match        https://store.steampowered.com/app/*
// @grant        none
// @require http://code.jquery.com/jquery-3.3.1.min.js
// ==/UserScript==

(function() {
    'use strict';

    var log = `██╗   ██╗███████╗████████╗     █████╗ ███╗   ██╗ ██████╗ ████████╗██╗  ██╗███████╗██████╗
╚██╗ ██╔╝██╔════╝╚══██╔══╝    ██╔══██╗████╗  ██║██╔═══██╗╚══██╔══╝██║  ██║██╔════╝██╔══██╗
 ╚████╔╝ █████╗     ██║       ███████║██╔██╗ ██║██║   ██║   ██║   ███████║█████╗  ██████╔╝
  ╚██╔╝  ██╔══╝     ██║       ██╔══██║██║╚██╗██║██║   ██║   ██║   ██╔══██║██╔══╝  ██╔══██╗
   ██║   ███████╗   ██║       ██║  ██║██║ ╚████║╚██████╔╝   ██║   ██║  ██║███████╗██║  ██║
   ╚═╝   ╚══════╝   ╚═╝       ╚═╝  ╚═╝╚═╝  ╚═══╝ ╚═════╝    ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝

███████╗███╗   ██╗██╗  ██╗ █████╗ ███╗   ██╗ ██████╗███████╗██████╗     ███████╗████████╗███████╗ █████╗ ███╗   ███╗
██╔════╝████╗  ██║██║  ██║██╔══██╗████╗  ██║██╔════╝██╔════╝██╔══██╗    ██╔════╝╚══██╔══╝██╔════╝██╔══██╗████╗ ████║
█████╗  ██╔██╗ ██║███████║███████║██╔██╗ ██║██║     █████╗  ██║  ██║    ███████╗   ██║   █████╗  ███████║██╔████╔██║
██╔══╝  ██║╚██╗██║██╔══██║██╔══██║██║╚██╗██║██║     ██╔══╝  ██║  ██║    ╚════██║   ██║   ██╔══╝  ██╔══██║██║╚██╔╝██║
███████╗██║ ╚████║██║  ██║██║  ██║██║ ╚████║╚██████╗███████╗██████╔╝    ███████║   ██║   ███████╗██║  ██║██║ ╚═╝ ██║
╚══════╝╚═╝  ╚═══╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝ ╚═════╝╚══════╝╚═════╝     ╚══════╝   ╚═╝   ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝

██████╗ ██╗   ██╗    ███╗   ███╗ ██████╗ ██╗   ██╗████████╗███╗   ███╗███████╗
██╔══██╗╚██╗ ██╔╝    ████╗ ████║██╔═══██╗██║   ██║╚══██╔══╝████╗ ████║██╔════╝
██████╔╝ ╚████╔╝     ██╔████╔██║██║   ██║██║   ██║   ██║   ██╔████╔██║█████╗
██╔══██╗  ╚██╔╝      ██║╚██╔╝██║██║   ██║██║   ██║   ██║   ██║╚██╔╝██║██╔══╝
██████╔╝   ██║       ██║ ╚═╝ ██║╚██████╔╝╚██████╔╝   ██║██╗██║ ╚═╝ ██║███████╗
╚═════╝    ╚═╝       ╚═╝     ╚═╝ ╚═════╝  ╚═════╝    ╚═╝╚═╝╚═╝     ╚═╝╚══════╝
                                                                                                                    `

    console.log(log);

    var domTemplate = {
        add_to_wishlist_area: `<div id="add_to_wishlist_area" style="display: none;">
  <a class="btnv6_blue_hoverfade btn_medium" href="javascript:AddToWishlist( 535480, 'add_to_wishlist_area', 'add_to_wishlist_area_success', 'add_to_wishlist_area_fail', '1_5_9__407' );"
    data-tooltip-text="在您愿望单中的物品正式发布或特价销售时获取邮件通知">
    <span>添加至您的愿望单</span>
  </a>
</div>`,
        add_to_wishlist_area_success: `<div id="add_to_wishlist_area_success">
  <a href="" class="btnv6_blue_hoverfade btn_medium queue_btn_active"
    data-tooltip-text="该产品已在您的愿望单中。点击取消收藏。">
    <span><img src="https://store.st.dl.bscstorage.net/public/images/v6/ico/ico_selected.png" border="0">
      已在愿望单中</span>
  </a>
</div>`,
        add_to_wishlist_area_fail: `<div id="add_to_wishlist_area_fail" style="display: none;">
  <b>哎呀,很抱歉!</b>
</div>`,
        remove_btn: ` <div class="queue_control_button queue_btn_remove_from_wishlist">&nbsp;<div class="btnv6_blue_hoverfade  btn_medium queue_btn_inactive" style="" data-tooltip-text="这个按钮是油猴脚本添加的。"><span>从愿望单移除</span></div></div> `
    }

    function getCookie(key) {
        var name = key + "=";
        var cookieArray = document.cookie.split(';');
        for (var i = 0; i < cookieArray.length; i++) {
            var c = cookieArray[i].trim();
            if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
        }
        return "";
    }

    $(document).ready(function () {
        var removeBtn = $(domTemplate.remove_btn);
        $('.queue_btn_ignore').after(removeBtn);

        // 移除跳转到愿望单的链接
        $('a.queue_btn_active').attr('href', '');

        // 判断如果已经在愿望单则恢复添加愿望单按钮
        if($('a.queue_btn_active').parent().attr('id') !== 'add_to_wishlist_area_success') {
            // 已在愿望单,替换按钮
            console.log('已在愿望单');
            $('a.queue_btn_active').remove();
            $('.queue_actions_ctn').prepend(domTemplate.add_to_wishlist_area, domTemplate.add_to_wishlist_area_success, domTemplate.add_to_wishlist_area_fail);
        } else {
            // 未添加到愿望单
            console.log('未添加到愿望单');
        }

        function handleRemove(event){
            event.preventDefault();
            var data = {
                sessionid: getCookie('sessionid'),
                appid: window.location.pathname.split('/')[2]
            }

            $.post( "//store.steampowered.com/api/removefromwishlist", data, function() {
                // alert( "success" );
                $('#add_to_wishlist_area').css('display', 'inline-block');
                $('#add_to_wishlist_area_success').css('display', 'none');
            })
                .done(function() {
                // alert( "second success" );
            })
                .fail(function() {
                alert( "error" );
            })
                .always(function() {
                // alert( "finished" );
            });
        }

        removeBtn.click(handleRemove);
        $('a.queue_btn_active').click(handleRemove);

    });
})();