Steam Auto Queue

自动探索Steam队列,有延时,可暂停

  1. // ==UserScript==
  2. // @name Steam Auto Queue
  3. // @namespace SteamAutoQueue@Byzod.user.js
  4. // @description 自动探索Steam队列,有延时,可暂停
  5. // @include /^https?:\/\/store\.steampowered\.com\/((?:agecheck\/)?app\/\d+|explore)/
  6. // @version 1
  7. // @grant none
  8. // jshint esversion:6
  9. // ==/UserScript==
  10.  
  11. // Settings
  12. var AUTO_DISCOVERY_QUEUE = true;
  13. var AUTO_DISCOVERY_QUEUE_DELAY = 0;
  14. var AUTO_DISCOVERY_QUEUE_STOPPED_TITLE_PREFIX = "【已停止梦游】";
  15. var AUTO_DISCOVERY_QUEUE_WITHOUT_CARD_DROP = false;
  16. // Settings End
  17.  
  18.  
  19. // Auto discovery queue
  20. if(AUTO_DISCOVERY_QUEUE){
  21. let timeoutId = setTimeout(AutoQueue, AUTO_DISCOVERY_QUEUE_DELAY);
  22. document.addEventListener(
  23. "keydown",
  24. (e) => {
  25. e.preventDefault();
  26. e.stopPropagation();
  27. document.title = AUTO_DISCOVERY_QUEUE_STOPPED_TITLE_PREFIX + document.title;
  28. setTimeout(
  29. ()=>{
  30. document.title = document.title.replace(AUTO_DISCOVERY_QUEUE_STOPPED_TITLE_PREFIX,"")
  31. },
  32. 1000
  33. );
  34. clearTimeout(timeoutId);
  35. console.log("Auto Queue Stopped");
  36. },
  37. {capture:true, once:true}
  38. );
  39. }
  40.  
  41. // Auto browse discovery queue
  42. function AutoQueue(){
  43. var discoveryQueueWinterSaleCardsHeaderSubText = document.getElementsByClassName('subtext');
  44. var refreshQueueBtn = document.getElementById('refresh_queue_btn');
  45. if (refreshQueueBtn != null
  46. && (AUTO_DISCOVERY_QUEUE_WITHOUT_CARD_DROP
  47. || ( discoveryQueueWinterSaleCardsHeaderSubText.length > 0
  48. && /^.+\s\d\s.+$/.test(discoveryQueueWinterSaleCardsHeaderSubText[0].innerHTML)
  49. )
  50. )
  51. ){
  52. setTimeout(()=>{refreshQueueBtn.click()}, 500);
  53. }
  54. var nextInQueueForm = document.getElementById('next_in_queue_form');
  55. if (nextInQueueForm !== null){
  56. nextInQueueForm.submit();
  57. console.log("SteamTemp: nextInQueueForm submit");
  58. }
  59.  
  60. var ageYear = document.getElementById('ageYear');
  61. if (ageYear !== null) {
  62. ageYear.selectedIndex = 77;
  63. DoAgeGateSubmit();
  64. console.log("SteamTemp: ageYear submit");
  65. }else{
  66. console.log("SteamTemp: ageYear not found");
  67. }
  68. var appId = location.href.match(/app\/(\d+)/)[1];
  69. if(document.title === "Site Error"){
  70. $J.post("/app/7", { sessionid: g_sessionID, appid_to_clear_from_queue: appId });
  71. console.warn("Locked game: " + appId + " removed.");
  72. window.location = "http://store.steampowered.com"
  73. }
  74. }