GC Neggsweeper Tracker

Tracks the number of neggs you have received each day. Does not work across multiple devices.

  1. // ==UserScript==
  2. // @name GC Neggsweeper Tracker
  3. // @namespace https://greasyfork.org/en/users/1175371/
  4. // @version 0.6
  5. // @description Tracks the number of neggs you have received each day. Does not work across multiple devices.
  6. // @author sanjix
  7. // @match https://www.grundos.cafe/games/neggsweeper/
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=grundos.cafe
  9. // @grant none
  10. // ==/UserScript==
  11.  
  12. var today = new Date();
  13. var nstDate = today.toLocaleString("en-US", "America/Los_Angeles");
  14. var neggCount = JSON.parse(localStorage.getItem('neggCounter')) || 0;
  15.  
  16. if (localStorage.getItem('storedDate') === null) {
  17. localStorage.setItem('storedDate', JSON.stringify(nstDate));
  18. }
  19.  
  20. function parseDate(dateString) {
  21. //returns date from Date String
  22. return dateString.match(/(\d+\/\d+\/\d+)/)[1];
  23. }
  24.  
  25. console.log('today ', parseDate(nstDate));
  26. console.log('stored date ', parseDate(JSON.parse(localStorage.getItem('storedDate'))));
  27.  
  28. //if stored date is not equal to current date, reset counter and date
  29. if (parseDate(nstDate) != parseDate(JSON.parse(localStorage.getItem('storedDate')))) {
  30. console.log('resetting date and counter');
  31. neggCount = 0;
  32. localStorage.setItem('neggCounter', JSON.stringify(neggCount));
  33. localStorage.setItem('storedDate',JSON.stringify(nstDate));
  34. } else {
  35. neggCount = JSON.parse(localStorage.getItem('neggCounter'));
  36. }
  37.  
  38. if (document.evaluate(
  39. 'count(//p[contains(.,"So far today")])',
  40. document,
  41. null,
  42. XPathResult.BOOLEAN_TYPE,
  43. null
  44. ).booleanValue) {
  45. var startForm = document.querySelector('.ns_start');
  46. startForm.style.background = "none";
  47. var neggP = document.createElement('p');
  48. neggP.textContent = "You have won " + JSON.parse(localStorage.getItem('neggCounter')) + " neggs today."
  49. document.querySelector('p + p + p').after(neggP);
  50. } else {
  51. var gridHeader = document.querySelector('#neggsweeper_status');
  52. var headers = document.querySelectorAll('.bg-gold')[2]
  53. headers.id = 'trackerHeader';
  54. var values = document.querySelector('.bg-gold:nth-child(3) + div + div + div');
  55. values.id = 'trackerValue';
  56.  
  57. var counterHeader = document.createElement('div');
  58. counterHeader.className = 'bg-gold';
  59. counterHeader.textContent = 'Neggs Won';
  60.  
  61. var counterValue = document.createElement('div');
  62. headers.after(counterHeader);
  63. values.after(counterValue);
  64.  
  65. gridHeader.style.gridTemplateColumns = '30% 20% 30% 20%';
  66.  
  67. counterValue.textContent = neggCount;
  68. if (document.evaluate(
  69. "count(//main//p[contains(.,'You also win a ')]) > 0",
  70. document,
  71. null,
  72. XPathResult.BOOLEAN_TYPE,
  73. null
  74. ).booleanValue) {
  75. neggCount += 1;
  76. counterValue.textContent = neggCount;
  77. localStorage.setItem('neggCounter', JSON.stringify(neggCount));
  78. }
  79. }
  80.