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.2
  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. // ==/UserScript==
  12.  
  13. var returnIn = 5e3 * 60;
  14. var pageRefresh = 5e3 * 60;
  15. var homePage = window.Environment.isOnHomepage || false;
  16. var erepublik = window.erepublik || {};
  17. var lang = erepublik.settings.culture;
  18. var O = erepublik.citizen || {};
  19. var H = O.residence;
  20. var t = window.csrfToken;
  21. var e = localStorage.notInResidence || 0;
  22. var dailiesToClaim;
  23.  
  24. function returnToResidence(countryId, regionId) {
  25. var body = "_token=" + t + "&battleId=0&toCountryId=" + countryId + "&inRegionId=" + regionId;
  26. fetch("/" + lang + "/main/travel/", {
  27. method: "POST",
  28. headers: {
  29. "Content-Type": "application/x-www-form-urlencoded",
  30. },
  31. credentials: "same-origin",
  32. body: body,
  33. })
  34. .then(() => {
  35. location.reload();
  36. });
  37. }
  38.  
  39. function getRewards() {
  40. setTimeout(() => {
  41. var collectAll = document.querySelector('.collectAll');
  42. console.log(collectAll);
  43. if (collectAll) {
  44. collectAll.click();
  45. }
  46. }, 5e3);
  47. }
  48.  
  49. function collectDailies() {
  50. if (O.dailiesToCollect > 0) {
  51. document.querySelector("#dailyMissionsPopupTrigger").click();
  52. setTimeout(function() {
  53. let timer = setInterval((dailiesToClaim) => {
  54. let claimButton = document.querySelector(".claimButton");
  55. if (claimButton) {
  56. setTimeout(() => {
  57. claimButton.click();
  58. }, 1e3);
  59. } else {
  60. clearInterval(timer);
  61. }
  62. }, 1e3);
  63. }, 1e3);
  64. }
  65. }
  66.  
  67. (function() {
  68. 'use strict';
  69. if (homePage) {
  70. console.log('home');
  71. getRewards();
  72. collectDailies();
  73. if (H.hasResidence && O.regionLocationId != H.regionId) {
  74. var now = Date.now();
  75. if (e == 0) {
  76. localStorage.notInResidence = now;
  77. } else {
  78. if ((now - e) >= returnIn) {
  79. returnToResidence(H.countryId, H.regionId)
  80. }
  81. }
  82. } else {
  83. localStorage.notInResidence = 0;
  84. }
  85.  
  86. setTimeout(() => {location.reload}, pageRefresh);
  87. }
  88. })();