Return to residency

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

  1. // ==UserScript==
  2. // @name Return to residency
  3. // @namespace https://greasyfork.org/en/users/2402-n-tsvetkov
  4. // @version 0.6
  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. function returnToResidence(countryId, regionId) {
  31. localStorage.notInResidence = 0;
  32. var body = "_token=" + t + "&battleId=0&toCountryId=" + countryId + "&inRegionId=" + regionId;
  33. fetch("/" + lang + "/main/travel/", {
  34. method: "POST",
  35. headers: {
  36. "Content-Type": "application/x-www-form-urlencoded",
  37. },
  38. credentials: "same-origin",
  39. body: body,
  40. })
  41. .then(() => {
  42. location.reload();
  43. });
  44. }
  45.  
  46. function getRewards() {
  47. setTimeout(() => {
  48. var collectAll = document.querySelector('.collectAll');
  49. console.log(collectAll);
  50. if (collectAll) {
  51. collectAll.click();
  52. }
  53. }, 5e3);
  54. }
  55.  
  56. function collectDailies() {
  57. if (O.dailiesToCollect > 0) {
  58. setTimeout(function() {
  59. document.querySelector("#dailyMissionsPopupTrigger").click();
  60. setTimeout(function() {
  61. let timer = setInterval((dailiesToClaim) => {
  62. let claimButton = document.querySelector(".claimButton");
  63. if (claimButton) {
  64. setTimeout(() => {
  65. claimButton.click();
  66. }, 1e3);
  67. } else {
  68. clearInterval(timer);
  69. let closeButton = document.querySelector(".closeButton");
  70. closeButton && setTimeout(() => closeButton.click(), 5e3);
  71. }
  72. }, 1e3);
  73. }, 1e3);
  74. }, 1e3);
  75. }
  76. }
  77.  
  78. if (homePage) {
  79. console.log('home');
  80. getRewards();
  81. collectDailies();
  82. if (H.hasResidence && O.regionLocationId != H.regionId) {
  83. var now = Date.now();
  84. if (e == 0) {
  85. localStorage.notInResidence = now;
  86. } else {
  87. if ((now - e) >= returnIn) {
  88. returnToResidence(H.countryId, H.regionId)
  89. }
  90. }
  91. } else {
  92. localStorage.notInResidence = 0;
  93. }
  94.  
  95. setTimeout(() => location.reload(), pageRefresh)
  96. }
  97.  
  98. })();