Greasy Fork

Greasy Fork is available in English.

Steam添加FOD

添加愿望单和添加FOD的代码搜集于https://steamcn.com论坛,并非原创。

当前为 2019-08-20 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Steam添加FOD
// @namespace    sourcewater
// @version      0.11
// @description  添加愿望单和添加FOD的代码搜集于https://steamcn.com论坛,并非原创。
// @author       sourcewater
// @match        https://store.steampowered.com/account/registerkey
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    function getText(f){
        return f.toString().replace(/^[^\/]+\/\*!?\s?/, '').replace(/\*\/[^\/]+$/, '');
    }

    var maincontent=document.getElementById("main_content");
    var leftcontent=document.getElementsByClassName("leftcol")[0];
    var addtowishlistscript=getText(function(){/*

function s_s_s_addtowishlistfunction(){
    var args=arguments[0].split(",");
    if(!args[0].trim().match(/^[\d]+$/)){
        ShowAlertDialog("失败","请输入APP ID,多个APP ID用“,”隔开");
        return;
    }
    var appidlist=new Array();
    for(var i=0;i<args.length;++i){
        appidlist[i]=args[i].trim();
    }
    var bdialog;
    for(var i=0;i<appidlist.length;++i){
        AddToWishlist(appidlist[i],'add_to_wishlist_area', 'add_to_wishlist_area_success', 'add_to_wishlist_area_fail','1_5_9__407');
        if(document.getElementById("followgame_appid").checked){
            jQuery.post( '//store.steampowered.com/explore/followgame/', {sessionid: g_sessionID,appid: appidlist[i]
		    }).done( function() {
                console.log("followed");
		    }).fail( function() {
                console.log("follow failed!");
		    });
        }
        if(i==(appidlist.length-1)){
            if(i!=0) bdialog.Dismiss();
            ShowAlertDialog("成功","已经全部添加至愿望单");
        }else{
            bdialog=ShowBlockingWaitDialog('正在添加...',(i+1)+'/'+appidlist.length);
        }
    }
}

    */});
    var headelement=document.getElementsByTagName("head")[0];
    var addtowishlistscriptnode=document.createElement("script");
    addtowishlistscriptnode.innerHTML=addtowishlistscript;
    headelement.appendChild(addtowishlistscriptnode);
    var addtowishlist=getText(function(){/*

<br>
<br>
<h2>输入APP ID添加跨区游戏至愿望单,输入SUB ID在Steam上添加免费产品。多个ID之间用“,”隔开</h2>
<div>输入APP ID</div>
<div style="float: left;" class="block_content checkout_content_box">
<input style="width:450px;" name="wishlist_appid" id="wishlist_appid" type="text" class="registerkey_input_box_text" value="">
</div>
<div class="button_row">
<a tabindex="300" href="javascript:s_s_s_addtowishlistfunction(document.getElementById('wishlist_appid').value);" class="btnv6_blue_hoverfade btn_medium">
<span>添加至愿望单</span>
</a>
</div>

<div style="clear: both;"></div>
<div class="block_content checkout_content_box" style="margin-top:10px">
<input type="checkbox" name="followgame_appid" value="1" id="followgame_appid">
<label for="followgame_appid">
<span>同时关注游戏</span>
</label>
</div>

    */});
    var addfreescript=getText(function(){/*

function s_s_s_addfreefunction(){
    var args=arguments[0].split(",");
    if(!args[0].trim().match(/^[\d]+$/)){
        ShowAlertDialog("失败","请输入SUB ID,多个SUB ID用“,”隔开");
        return;
    }
    var subidlist=new Array();
    for(var i=0;i<args.length;++i){
        subidlist[i]=args[i].trim();
    }

    if (location.hostname !== 'store.steampowered.com') {
        alert('请在steam商店运行本代码!');
        return;
    } else if (typeof jQuery !== 'function') {
        ShowAlertDialog('失败', '脚本需要jQuery库!');
        return;
    } else if (document.getElementById('header_notification_area') === null) {
        ShowAlertDialog('失败', '你必须处于登录状态.');
        return;
    }

    var freePackages = subidlist;//change here[221306,221459]

    var loaded = 0,
        total = freePackages.length,
        modal = ShowBlockingWaitDialog('正在添加...', '请等待所有请求结束。');

    for (var i = 0; i < total; i++) {
        jQuery.post(
            '//store.steampowered.com/checkout/addfreelicense', {
                action: 'add_to_cart',
                sessionid: g_sessionID,
                subid: freePackages[i]
            },
            function(data) {
                loaded++;

                modal.Dismiss();

                if (loaded === total) {
                    ShowAlertDialog('完成!', '已全部添加完毕。');
                } else {
                    modal = ShowBlockingWaitDialog('正在添加...', '载入 ' + loaded + '/' + total);
                }
            }
        ).fail(function() {
            loaded++;

            modal.Dismiss();

            if (loaded === total) {
                ShowAlertDialog('完成!', '已全部添加完毕。');
            } else {
                modal = ShowBlockingWaitDialog('正在添加...', '载入 ' + loaded + '/' + total);
            }
        });
    }
}

    */});
    var addfreescriptnode=document.createElement("script");
    addfreescriptnode.innerHTML=addfreescript;
    headelement.appendChild(addfreescriptnode);
    var addfree=getText(function(){/*

<br>
<div>输入SUB ID</div>
<div style="float: left;" class="block_content checkout_content_box">
<input style="width:450px;" name="free_appid" id="free_appid" type="text" class="registerkey_input_box_text" value="">
</div>
<div class="button_row">
<a tabindex="300" href="javascript:s_s_s_addfreefunction(document.getElementById('free_appid').value);" class="btnv6_blue_hoverfade btn_medium">
<span>添加免费游戏</span>
</a>
</div>

    */});
    leftcontent.innerHTML=leftcontent.innerHTML+addtowishlist+addfree;
})();