Return to residency

Return to residency after some time. Claim daily rewards, claim weekly rewards.

目前为 2022-06-11 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name Return to residency
  3. // @namespace https://greasyfork.org/en/users/2402-n-tsvetkov
  4. // @version 0.4
  5. // @description Return to residency after some time. Claim daily rewards, claim weekly rewards.
  6. // @author Nikolai Tsvetkov
  7. // @match https://www.erepublik.com/*
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=erepublik.com
  9. // @grant none
  10. // @license MIT
  11. // @run-at document-end
  12. // ==/UserScript==
  13.  
  14. (function() {
  15. 'use strict';
  16. if (window.top != window.self) {
  17. return;
  18. }
  19. var returnIn = 5e3 * 60;
  20. var pageRefresh = 5e3 * 60;
  21. var homePage = window.Environment.isOnHomepage || false;
  22. var erepublik = window.erepublik || {};
  23. var lang = erepublik.settings.culture;
  24. var O = erepublik.citizen || {};
  25. var H = O.residence;
  26. var t = window.csrfToken;
  27. var e = localStorage.notInResidence || 0;
  28. var dailiesToClaim;
  29.  
  30. if (homePage) {
  31. console.log('home');
  32. getRewards();
  33. collectDailies();
  34. if (H.hasResidence && O.regionLocationId != H.regionId) {
  35. var now = Date.now();
  36. if (e == 0) {
  37. localStorage.notInResidence = now;
  38. } else {
  39. if ((now - e) >= returnIn) {
  40. returnToResidence(H.countryId, H.regionId)
  41. }
  42. }
  43. } else {
  44. localStorage.notInResidence = 0;
  45. }
  46.  
  47. setTimeout(() => location.reload(), pageRefresh)
  48. }
  49.  
  50. function returnToResidence(countryId, regionId) {
  51. var body = "_token=" + t + "&battleId=0&toCountryId=" + countryId + "&inRegionId=" + regionId;
  52. fetch("/" + lang + "/main/travel/", {
  53. method: "POST",
  54. headers: {
  55. "Content-Type": "application/x-www-form-urlencoded",
  56. },
  57. credentials: "same-origin",
  58. body: body,
  59. })
  60. .then(() => {
  61. location.reload();
  62. });
  63. }
  64.  
  65. function getRewards() {
  66. setTimeout(() => {
  67. var collectAll = document.querySelector('.collectAll');
  68. console.log(collectAll);
  69. if (collectAll) {
  70. collectAll.click();
  71. }
  72. }, 5e3);
  73. }
  74.  
  75. function collectDailies() {
  76. if (O.dailiesToCollect > 0) {
  77. document.querySelector("#dailyMissionsPopupTrigger").click();
  78. setTimeout(function() {
  79. let timer = setInterval((dailiesToClaim) => {
  80. let claimButton = document.querySelector(".claimButton");
  81. if (claimButton) {
  82. setTimeout(() => {
  83. claimButton.click();
  84. }, 1e3);
  85. } else {
  86. clearInterval(timer);
  87. let closeButton = document.querySelector(".closeButton");
  88. closeButton && setTimeout(() => closeButton.click(), 5e3);
  89. }
  90. }, 1e3);
  91. }, 1e3);
  92. }
  93. }
  94. })();