Greasy Fork is available in English.

Steam自动探索队

Steam节庆活动用脚本,自动探索3次队列。

Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greasyfork.org/scripts/447022/1213303/Steam%E8%87%AA%E5%8A%A8%E6%8E%A2%E7%B4%A2%E9%98%9F.js

Autor
BaiBuCYBGT
Version
0.1
Erstellt am
25.06.2022
Letzte Aktualisierung
25.06.2022
Lizenz
MIT

// ==UserScript==
// @name Steam自动探索队列
// @namespace https://keylol.com/t157861-1-1
// @version 0.1
// @description Steam节庆活动用脚本,自动探索3次队列。
// @author baodongsun
// @match https://store.steampowered.com/
// @grant SteamCN
// ==/UserScript==

(function() {
'use strict';

// Your code here...
})();(function _exec(){
var appids,
running = true,
queueNumber,
progressDialog = ShowAlertDialog('探索中', $J('

').append($J('
', {'class': 'waiting_dialog_throbber'}) ).append( $J('
', {'id': 'progressContainer'}).text('获取进度...') ), '停止').done(abort);
function abort(){
running = false;
progressDialog.Dismiss();
}
function retry(){
abort();
ShowConfirmDialog('错误', '是否重试?', '重试', '放弃').done(_exec)
}
function clearApp(){
if(!running)
return;
showProgress();
var appid = appids.shift();
!appid ? generateQueue() : $J.post( appids.length ? '/app/' + appid : '/explore/next/', {sessionid: g_sessionID, appid_to_clear_from_queue: appid} ).done(clearApp).fail(retry);
}
function generateQueue(){
running && $J.post('/explore/generatenewdiscoveryqueue', {sessionid: g_sessionID, queuetype: 0}).done(beginQueue).fail(retry);
}
function beginQueue(){
if(!running)
return;
$J.get('/explore/').done(function(htmlText){
var cardInfo = htmlText.match(/
\D+(\d)\D+<\/div>/);
if( !cardInfo ){
abort();
ShowAlertDialog('完成','已完成全部3轮探索队列');
return;
}
var matchedAppids = htmlText.match(/0,\s+(\[.*\])/);
if( !matchedAppids ){
retry();
return;
}
appids = JSON.parse(matchedAppids[1]);
queueNumber = cardInfo[1];
appids.length == 0 ? generateQueue() : clearApp();
showProgress();
})
}
function showProgress(){
$J('#progressContainer').html( '
剩余' + queueNumber + '个待探索队列, 当前队列剩余' + appids.length + '个待探索游戏' );
}
beginQueue();
}())