!!GC - Kings Logger

12/15/2023, 6:55:38 PM

目前为 2023-12-25 提交的版本。查看 最新版本

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.cn-greasyfork.org/scripts/483077/1301360/%21%21GC%20-%20Kings%20Logger.js

  1. // ==UserScript==
  2. // @name !!GC - Kings Logger
  3. // @namespace Grundo's Cafe
  4. // @match https://www.grundos.cafe/medieval/wiseking/
  5. // @match https://www.grundos.cafe/medieval/grumpyoldking/
  6. // @grant none
  7. // @version .1
  8. // @author Cupkait
  9. // @description 12/15/2023, 6:55:38 PM
  10. // ==/UserScript==
  11.  
  12. function logInventory() {
  13. const userName = /user=(.*?)"/g.exec(document.body.innerHTML)[1];
  14.  
  15. function getInventory() {
  16. return fetch("https://www.grundos.cafe/inventory/")
  17. .then(response => {
  18. if (!response.ok) {
  19. throw new Error(`Network response was not ok: ${response.statusText}`);
  20. }
  21. return response.text();
  22. });
  23. }
  24.  
  25. let getAvatar;
  26.  
  27. function avatarCheck() {
  28. const avatarContainer = document.querySelector('div#page_event');
  29.  
  30. if (
  31. !avatarContainer.innerText.includes("Skeith - King Hagan") &&
  32. !avatarContainer.innerText.includes("Hagan - Blah Blah") &&
  33. !avatarContainer.innerText.includes("King of Brightvale") &&
  34. !avatarContainer.innerText.includes("Brightvale Pride") &&
  35. !avatarContainer.innerText.includes("Blumaroo Court Jester") &&
  36. !avatarContainer.innerText.includes("Skarl - Moody")
  37. ) {
  38. getAvatar = '';
  39. console.log("No avatar detected.");
  40. } else {
  41. console.log("Avatar detected.");
  42. if (avatarContainer.innerText.includes("Skeith - King Hagan")) {
  43. getAvatar = 'Skeith - King Hagan';
  44. } else if (avatarContainer.innerText.includes("Hagan - Blah Blah")) {
  45. getAvatar = 'Hagan - Blah Blah';
  46. } else if (avatarContainer.innerText.includes("King of Brightvale")) {
  47. getAvatar = 'King of Brightvale';
  48. } else if (avatarContainer.innerText.includes("Brightvale Pride")) {
  49. getAvatar = 'Brightvale Pride';
  50. } else if (avatarContainer.innerText.includes("Blumaroo Court Jester")) {
  51. getAvatar = 'Blumaroo Court Jester';
  52. } else if (avatarContainer.innerText.includes("Skarl - Moody")) {
  53. getAvatar = 'Skarl - Moody';
  54. }
  55. console.log(getAvatar);
  56. }
  57. }
  58.  
  59. const kingText = document.querySelector('div#page_content > main');
  60. const welcomeText = kingText.children[1].innerText;
  61. const fullText = $("main");
  62.  
  63. if (welcomeText.startsWith('King Hagan listens')) {
  64. let getJoke = fullText.find("em").text().match(/"([^"]+)"/)[1].slice(0, -1);
  65. let getScore = fullText.find("strong").eq(0).text();
  66. let getItem = fullText.find("strong").eq(1).text();
  67. let getReaction = fullText.find("h4").eq(0).text();
  68. console.log(getReaction);
  69. avatarCheck();
  70. getInventory()
  71. .then(html => {
  72. const tempElement = document.createElement('div');
  73. tempElement.innerHTML = html;
  74. const fullInvent = tempElement.querySelector('#page_content > main > div > div.inventory');
  75. const itemList = Array.from(fullInvent.innerHTML.matchAll(/<span>(.*?)<\/span>/g), m => m[1]);
  76.  
  77. let logResponse = `https://docs.google.com/forms/d/e/1FAIpQLScg6DKdRK4CooB0-eFIOJwrn_SiYu6yrX318u0avdjFlhLw0g/formResponse?usp=pp_url&entry.887213950=${userName}&entry.282164107=${getScore}&entry.757151679=${getAvatar}&entry.990142109=${getItem}&entry.356783646=${getJoke}&entry.2040047231=${itemList}&entry.274581123=${getReaction}`;
  78. fetch(logResponse);
  79. });
  80. } else if (welcomeText.startsWith('King Skarl listens')) {
  81. let getScore = fullText.find("strong").eq(1).text();
  82. let getItem = fullText.find("strong").eq(2).text();
  83. let getQuestion = fullText.find("p").eq(1).text();
  84. let getAnswer = fullText.find("p").eq(2).text();
  85. let getReaction = fullText.find("h4").eq(0).text();
  86.  
  87. console.log("Score:", getScore, "Prize:", getItem)
  88. console.log(getQuestion)
  89. console.log(getAnswer)
  90. avatarCheck()
  91. getInventory()
  92. .then(html => {
  93. const tempElement = document.createElement('div');
  94. tempElement.innerHTML = html;
  95. const fullInvent = tempElement.querySelector('#page_content > main > div > div.inventory');
  96. const itemList = Array.from(fullInvent.innerHTML.matchAll(/<span>(.*?)<\/span>/g), m => m[1]);
  97.  
  98. let logResponse = `https://docs.google.com/forms/d/e/1FAIpQLScKV9bdZPm_CH9HbwTTe_L9SrC_TUmsx7Zs2q2hENm1w6xHfQ/formResponse?usp=pp_url&entry.887213950=${userName}&entry.1276971140=${getAvatar}&entry.461702494=${getScore}&entry.1317968997=${getItem}&entry.356783646=${getQuestion}&entry.977451939=${getAnswer}&entry.2040047231=${itemList}&entry.2140734508=${getReaction}`;
  99. fetch(logResponse);
  100. });
  101. } else if (!welcomeText.includes('listens')) {
  102. console.log("Nothing to see here, you haven't told a joke yet.");
  103. }
  104. }