Dashboard auto-refresh

Automatically refresh your Multi-Player dashboard by re-applying your currently selected games filter.

  1. // ==UserScript==
  2. // @name Dashboard auto-refresh
  3. // @namespace http://tampermonkey.net/
  4. // @version 2025-05-20
  5. // @description Automatically refresh your Multi-Player dashboard by re-applying your currently selected games filter.
  6. // @author JK_3
  7. // @match https://www.warzone.com/MultiPlayer/
  8. // @icon https://icons.duckduckgo.com/ip2/warzone.com.ico
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. const secondsBetweenRefreshes = 30;
  16.  
  17. function ScheduleRefresh() {
  18. setTimeout(RefreshFilter, secondsBetweenRefreshes * 1000);
  19. }
  20.  
  21. function GetFilterPrompt() {
  22. return document.getElementById("AlertVMPrompt_Inner");
  23. }
  24.  
  25. function RefreshFilter()
  26. {
  27. function SelectFilterOption(filterText) {
  28. let prompt = GetFilterPrompt();
  29. if (prompt) {
  30. let btn = Array.from(prompt.querySelectorAll("input")).filter(i => i.value.startsWith(filterText)).at(0);
  31. setTimeout(() => btn.click(), 300); // WZ is slow when adding event handlers, so we need to wait with clicking
  32. ScheduleRefresh();
  33. } else {
  34. setTimeout(() => SelectFilterOption(filterText), 25);
  35. }
  36. }
  37.  
  38. let filterBtn = document.getElementById("MyGamesFilterBtn");
  39. if (filterBtn) {
  40. if (!GetFilterPrompt()) {
  41. filterBtn.click();
  42. }
  43.  
  44. SelectFilterOption(filterBtn.innerText.slice(8, -3));
  45. }
  46. }
  47.  
  48. ScheduleRefresh();
  49. })();