Web+Panda Results in Google

.

  1. // ==UserScript==
  2. // @name Web+Panda Results in Google
  3. // @namespace salembeats
  4. // @version 1.2
  5. // @description .
  6. // @author Cuyler Stuwe (salembeats)
  7. // @include /https:\/\/www.google.com\/search(?:.*?)[?&]q=3[A-Za-z0-9]{29}(?:[/?&]|\b)/
  8. // @include /https:\/\/www.google.com\/search(?:.*?)[?&]q=A(?:[A-Za-z0-9]{11,13}|[A-Za-z0-9]{20})(?:[/?&]|\b)/
  9. // @require https://greasyfork.org/scripts/36173-panda-crazy-helper-emulation/code/Panda%20Crazy%20Helper%20Emulation.js
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. // https://turkopticon.info/requesters/A25EIGL5N7278I
  14.  
  15.  
  16. function insertNewContent(gid, rid) {
  17.  
  18. var gidHTML = `
  19. <div>
  20. <div>
  21. <span class="results-title">Results for mTurk HIT Set ID ("Group ID / GID")</span> <span class="gid-rid">${gid}</span>
  22. </div>
  23. <div>
  24. <span><a target="_new" href="web+panda://${gid}">web+panda:// (without metadata)</a> </span>
  25. <span><a target="_new" href="https://worker.mturk.com/projects/${gid}/tasks/accept_random">Standard "Accept" Link</a> </span>
  26. <span><a target="_new" href="javascript:void(0)" id="add-to-pc">Add to PC</a> </span>
  27. <span><a target="_new" href="javascript:void(0)" id="add-to-pc-once">Add to PC (ONCE)</a> </span>
  28. </div>
  29. </div>`;
  30.  
  31. var ridHTML = `
  32. <div>
  33. <div>
  34. <span class="results-title">Results for mTurk Requester ID ("RID")</span> <span class="gid-rid">${rid}</span>
  35. </div>
  36. <div>
  37. <span><a target="_new" href="https://turkopticon.ucsd.edu/reports?id=${rid}">Find on TO</a> </span>
  38. <span><a target="_new" href="https://turkopticon.info/requesters/${rid}">Find on TO2</a> </span>
  39. <span><a target="_new" href="https://turkerview.com/requesters/${rid}">Find on TurkerView</a></span>
  40. </div>
  41. </div>`;
  42.  
  43. (document.querySelector("div.g") || document.querySelector("#topstuff")).insertAdjacentHTML("beforebegin", `
  44. <style>
  45. #resultsChanger {
  46.  
  47. }
  48.  
  49. #resultsChanger a::after {
  50. content: " ?";
  51. }
  52.  
  53. #resultsChanger>div>div {
  54. margin: 10px !important;
  55. }
  56.  
  57. .results-title {
  58. font-size: 1.3em;
  59. }
  60.  
  61. .results-title::before {
  62. content: "⭐ ";
  63. }
  64.  
  65. .gid-rid {
  66. font-size: 1.3em;
  67. color: green;
  68. background: white;
  69. }
  70. </style>
  71.  
  72. <div id="resultsChanger" class="g">
  73. ${ gid ? gidHTML : ""}
  74. ${ rid ? ridHTML : ""}
  75. </div>
  76. `);
  77.  
  78. }
  79.  
  80.  
  81. function main() {
  82.  
  83. var parsedURL = new URL(window.location.href);
  84. var searchQuery = parsedURL.searchParams.get("q");
  85.  
  86. let gid = (searchQuery.match(/\b3[A-Za-z0-9]{29}\b/) || [null])[0];
  87. let rid = (searchQuery.match(/\bA(?:[A-Za-z0-9]{11,13}|[A-Za-z0-9]{20})\b/) || [null])[0];
  88.  
  89. insertNewContent(gid, rid);
  90.  
  91. document.body.addEventListener("click", e => {
  92. if(e.target.id === "add-to-pc") {
  93. PandaCrazy.addJob(gid);
  94. document.getElementById("add-to-pc").innerText = "Added to PC (if running)!";
  95. }
  96. else if(e.target.id === "add-to-pc-once") {
  97. const PC_ADD_ONCE = true;
  98. document.getElementById("add-to-pc").innerText = "Added to PC (ONCE) (if running)!";
  99. PandaCrazy.addJob(gid, PC_ADD_ONCE);
  100. }
  101. });
  102. }
  103.  
  104.  
  105. main();