Skip to content

Instantly share code, notes, and snippets.

@Onurtag
Forked from xPaw/steam_quick_queue.user.js
Last active June 27, 2020 17:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Onurtag/a0cc77c1bff09ab2a39a180d7ede970c to your computer and use it in GitHub Desktop.
Save Onurtag/a0cc77c1bff09ab2a39a180d7ede970c to your computer and use it in GitHub Desktop.
⚠ This script has been integrated into SteamDB browser extension!
// ==UserScript==
// @name Steam Queue Auto Discoverer
// @description Discover the Steam queue ONCE to get the sale cards
// @version 2.3.1
// @namespace https://gist.github.com/xPaw/73f8ae2031b4e528abf7
// @updateURL https://gist.github.com/xPaw/73f8ae2031b4e528abf7/raw/steam_quick_queue.user.js
// @icon https://store.steampowered.com/favicon.ico
// @match https://store.steampowered.com/explore*
// @grant none
// ==/UserScript==
var DiscoveryQueueModal, GenerateQueue = function( queueNumber )
{
if( DiscoveryQueueModal )
{
DiscoveryQueueModal.Dismiss();
}
DiscoveryQueueModal = ShowBlockingWaitDialog( 'Generating the queue...', 'Generating new discovery queue #' + ++queueNumber );
jQuery.post( 'https://store.steampowered.com/explore/generatenewdiscoveryqueue', { sessionid: g_sessionID, queuetype: 0 } ).done( function( data )
{
var requests = [], done = 0, errorShown;
for( var i = 0; i < data.queue.length; i++ )
{
var request = jQuery.post( 'https://store.steampowered.com/app/10', { appid_to_clear_from_queue: data.queue[ i ], sessionid: g_sessionID } );
request.done( function()
{
if( errorShown )
{
return;
}
DiscoveryQueueModal.Dismiss();
DiscoveryQueueModal = ShowBlockingWaitDialog( 'Exploring the queue...', 'Request ' + ++done + ' of ' + data.queue.length );
} );
request.fail( function()
{
if( errorShown )
{
return;
}
errorShown = true;
DiscoveryQueueModal.Dismiss();
DiscoveryQueueModal = ShowBlockingWaitDialog( 'Error', 'Failed to clear queue item #' + ++done + '. Will try again soon.' );
} );
requests.push( request );
}
var callback = function()
{
DiscoveryQueueModal.Dismiss();
if( queueNumber < 1 )
{
GenerateQueue( queueNumber );
}
else
{
DiscoveryQueueModal = ShowConfirmDialog( 'Done', 'Queue has been explored ' + queueNumber + ' times', 'Reload the page' ).done( function() {
ShowBlockingWaitDialog( 'Reloading the page' );
window.location.reload();
});
}
};
jQuery.when.apply( jQuery, requests ).then( callback, callback );
} ).fail( function()
{
setTimeout( () => GenerateQueue( queueNumber - 1 ), 1000 );
DiscoveryQueueModal.Dismiss();
DiscoveryQueueModal = ShowBlockingWaitDialog( 'Error', 'Failed to generate new queue #' + queueNumber + '. Trying again in a second.' );
} );
};
var buttonContainer = document.createElement( 'div' );
buttonContainer.className = 'discovery_queue_customize_ctn';
buttonContainer.innerHTML = '<div class="btnv6_blue_hoverfade btn_medium" id="js-cheat-queue"><span>Cheat the queue</span></div><span>Discover the queue ONCE to get the sale cards</span>';
var container = document.querySelector( '.discovery_queue_customize_ctn' );
container.parentNode.insertBefore( buttonContainer, container );
var button = document.getElementById( 'js-cheat-queue' );
button.addEventListener( 'click', function( )
{
GenerateQueue( 0 );
container.parentNode.removeChild( buttonContainer );
}, false );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment