// ==UserScript== // @name Steam添加FOD // @namespace sourcewater // @version 0.18 // @description 添加愿望单和添加FOD的代码搜集于https://steamcn.com论坛,https://steamdb.info/freepackages/,并非原创。批量激活的脚本来自于:https://greasyfork.org/zh-CN/scripts/32718-steamredeemkeys。因为两个脚本不兼容,因此进行合并。 // @author sourcewater // @match https://store.steampowered.com/account/registerkey // @grant none // @downloadURL 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 headelement=document.getElementsByTagName("head")[0]; var dselectscriptnode=document.createElement("script"); dselectscriptnode.type="text/javascript"; dselectscriptnode.src="https://steamstore-a.akamaihd.net/public/shared/javascript/dselect.js?v=yT8Q5U2-O4wX&l=schinese"; headelement.appendChild(dselectscriptnode); var steamaccountcss=getText(function(){/* .steamaccount_currencyselect { text-align: right; } .steamaccount_currencyselect .dselect_container { display: inline-block; vertical-align: middle; text-align: left; } .currency_change_confirm_dialog { max-width: 670px; } .currency_change_confirm_dialog p { margin: 24px 0; } .currency_change_confirm_dialog b { color: #67c1f5; font-weight: normal; } .currency_change_option_ctn { vertical-align: top; margin: 0 6%; } .currency_change_option_ctn:first-child { margin-bottom: 12px; } .currency_change_option { font-family: "Motiva Sans", Sans-serif; font-weight: 300; display: block; } .currency_change_option > span { display: block; padding: 9px 19px; } .currency_change_option .country { font-size: 20px; } .currency_change_option .notes { font-size: 13px; line-height: 18px; } .currency_change_option_ctn > p { font-size: 12px; margin: 8px 8px 0 8px; } p.currency_change_confirm_dialog_footer { margin-top: 128px; } .youraccount_updating_shipping_button_row { padding-top: 10px; } */}); var steamaccountcssnode=document.createElement("style"); steamaccountcssnode.type="text/css"; steamaccountcssnode.innerHTML=steamaccountcss; headelement.appendChild(steamaccountcssnode); var changecurrencycontainer=document.createElement("div"); changecurrencycontainer.style="margin:-402px"; jQuery.get("//store.steampowered.com/cart",function(result){ var framenode=document.createElement("frame"); framenode.innerHTML=result; var allscripts=framenode.getElementsByTagName("script"); var changecurrencyscript; var changecurrency=framenode.getElementsByClassName("cart_currency_select")[0]; if(changecurrency) changecurrency=changecurrency.parentNode; for(var i=0;i'); listObject.html(key + ' ( ' + reason + (subId != 0 ? (': ' + subId + ' ' + subName) : '') + ' )'); jQuery('#unusedKeys').append(listObject); s_s_s_allUnusedKeys.push(key); } } function s_s_s_tableInsertKey(key) { s_s_s_keyCount++; var row = jQuery(''); // number row.append('' + s_s_s_keyCount + ''); //key row.append('' + key + ''); //redeeming... row.append('' + s_s_s_myTexts.redeeming + '...'); jQuery('tbody').prepend(row); } function s_s_s_tableWaitKey(key) { s_s_s_keyCount++; var row = jQuery(''); // number row.append('' + s_s_s_keyCount + ''); //key row.append('' + key + ''); //waiting... row.append('' + s_s_s_myTexts.waiting + ' (' + s_s_s_waitingSeconds + '秒)...'); jQuery('tbody').prepend(row); } function s_s_s_tableUpdateKey(key, result, detail, subId, subName) { s_s_s_setUnusedKeys(key, result === s_s_s_myTexts.success, detail, subId, subName); s_s_s_recvCount++; if (s_s_s_recvCount == s_s_s_keyCount) { jQuery('#buttonRedeem').fadeIn(); jQuery('#inputKey').removeAttr('disabled'); } var rowObjects = jQuery('tr'); for (var i = 1; i < rowObjects.length; i++) { var rowElement = rowObjects[i]; var rowObject = jQuery(rowElement); if (rowObject.children()[1].innerHTML.includes(key)&& rowObject.children()[2].innerHTML.includes(s_s_s_myTexts.redeeming)) { rowObject.children()[2].remove(); // result if (result == s_s_s_myTexts.fail) rowObject.append('' + result + ''); else rowObject.append('' + result + ''); // detail rowObject.append('' + detail + ''); // sub if (subId === 0) { rowObject.append('——'); } else { rowObject.append('' + subId + ' ' + subName + ''); } break; } } } function s_s_s_getKeysByRE(text) { text = text.trim().toUpperCase(); var reg = new RegExp('([0-9,A-Z]{5}-){2,4}[0-9,A-Z]{5}', 'g'); var keys = []; var result = void 0; while (result = reg.exec(text)) { keys.push(result[0]); } return keys; } function s_s_s_startTimer() { s_s_s_timer = setInterval(function() { var flag = false; var nowKey = 0; var rowObjects = jQuery('tr'); for (var i = rowObjects.length - 1; i >= 1; i--) { var rowElement = rowObjects[i]; var rowObject = jQuery(rowElement); if (rowObject.children()[2].innerHTML.includes(s_s_s_myTexts.waiting)) { nowKey++; if (nowKey <= s_s_s_autoDivideNum) { var key = rowObject.children()[1].innerHTML.substring(6); key = key.substring(0, key.indexOf('')); rowObject.children()[2].innerHTML = '' + s_s_s_myTexts.redeeming + '...'; s_s_s_redeemKey(key); } else { flag = true; break; } } } if (!flag) { clearInterval(s_s_s_timer); } }, 1000 * s_s_s_waitingSeconds); } function s_s_s_redeemKeys() { var keys = s_s_s_getKeysByRE(jQuery('#inputKey').val().trim()); if (keys.length <= 0) { return; } jQuery('#buttonRedeem').fadeOut(); jQuery('#inputKey').attr('disabled', 'disabled'); var nowKey = 0; keys.forEach(function (key) { nowKey++; if (nowKey <= s_s_s_autoDivideNum) { s_s_s_tableInsertKey(key); s_s_s_redeemKey(key); } else { s_s_s_tableWaitKey(key); } }); if (nowKey > s_s_s_autoDivideNum) { s_s_s_startTimer(); } } function s_s_s_toggleUnusedKeyArea() { if (jQuery('#unusedKeyArea').is(':hidden')) { jQuery('#unusedKeyArea').fadeIn(); } else { jQuery('#unusedKeyArea').fadeOut(); } } function s_s_s_showUnusedKey() { s_s_s_toggleUnusedKeyArea(); if (this.innerHTML.includes(s_s_s_myTexts.showUnusedKey)) { this.innerHTML = this.innerHTML.replace(s_s_s_myTexts.showUnusedKey, s_s_s_myTexts.hideUnusedKey); } else { this.innerHTML = this.innerHTML.replace(s_s_s_myTexts.hideUnusedKey, s_s_s_myTexts.showUnusedKey); } } */}); var batchredeemscriptnode=document.createElement("script"); batchredeemscriptnode.innerHTML=batchredeemscript; headelement.appendChild(batchredeemscriptnode); var batchredeemkey=getText(function(){/*
产品代码








*/}); document.getElementById("registerkey_form").style.display="none"; var keyexamplestext=document.getElementById("registerkey_examples_text"); keyexamplestext.outerHTML=batchredeemkey+keyexamplestext.outerHTML; var outputtablecss = ` table a { color: pink; } td { white-space: nowrap; overflow: hidden; } code { padding:2px 4px; font-size:90%; color:#c7254e; background-color:#f9f2f4; border-radius:3px } .notice_box_content { border: 1px solid #a25024; border-radius: 3px; width: 525px; color: #acb2b8; font-size: 14px; font-family: "Motiva Sans", Sans-serif; font-weight: normal; padding: 15px 15px; margin-bottom: 15px; } .notice_box_content b { font-weight: normal; color: #f47b20; } li { white-space: nowrap; overflow: hidden; } `; var outputtablenode=document.createElement("style"); outputtablenode.type="text/css"; outputtablenode.innerHTML=outputtablecss; headelement.appendChild(outputtablenode); 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

输入APP ID添加跨区游戏至愿望单,输入SUB ID在Steam上添加免费产品。多个ID之间用“,”隔开。(切换帐单会有点延迟,取决于网速,一开始点不动的话,等一会就能点了。)

输入APP ID
*/}); 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
输入SUB ID
*/}); leftcontent.innerHTML=leftcontent.innerHTML+addtowishlist+addfree; leftcontent.appendChild(changecurrencycontainer); })();