Preview, Accept and Hoard

Adds an Accept and Hoard link to every Hit Capsule.

  1. // ==UserScript==
  2. // @name Preview, Accept and Hoard
  3. // @author Chet Manley - The good parts
  4. // @description Adds an Accept and Hoard link to every Hit Capsule.
  5. // @author Cristo - The bad parts
  6. // @version 13.0
  7. // @grant GM_getValue
  8. // @grant GM_setValue
  9. // @include https://www.mturk.com/mturk/accept*
  10. // @include https://www.mturk.com/mturk/findhits*
  11. // @include https://www.mturk.com/mturk/preview*
  12. // @include https://www.mturk.com/mturk/searchbar*
  13. // @include https://www.mturk.com/mturk/sorthits*
  14. // @include https://www.mturk.com/mturk/sortsearchbar*
  15. // @include https://www.mturk.com/mturk/viewhits*
  16. // @include https://www.mturk.com/mturk/viewsearchbar*
  17. // @namespace https://greasyfork.org/users/1973
  18. // ==/UserScript==
  19.  
  20. var refreshTime = 3; //In seconds
  21.  
  22.  
  23. var previewLinkEls = document.querySelectorAll('span.capsulelink a');
  24. for (var i = 0; i < previewLinkEls.length; i++) {
  25. var previewLink = previewLinkEls[i].getAttribute('href');
  26. if (previewLink && previewLink.split('?')) {
  27. var previewLinkArray = previewLink.split('?');
  28. if (previewLinkArray[0] == '/mturk/preview') {
  29. var previewAndAcceptLink = previewLinkArray[0] + 'andaccept?' + previewLinkArray[1];
  30. var previewAndAcceptEl = document.createElement('a');
  31. previewAndAcceptEl.setAttribute('href', previewAndAcceptLink);
  32. previewAndAcceptEl.setAttribute('target', 'mturkhits');
  33. previewAndAcceptEl.setAttribute('style', 'padding-right: 20px;');
  34. previewAndAcceptEl.innerHTML = 'Accept';
  35. var parentSpan = previewLinkEls[i].parentNode;
  36. parentSpan.insertBefore(previewAndAcceptEl, parentSpan.firstChild);
  37. var hoardLink = document.createElement("a");
  38. hoardLink.setAttribute('href', previewAndAcceptLink);
  39. hoardLink.setAttribute('class', 'newhb');
  40. hoardLink.setAttribute('style', 'padding-right: 20px;');
  41. hoardLink.setAttribute('id', 'hLink');
  42. hoardLink.innerHTML = "Hoard";
  43. var parentSpan = previewLinkEls[i].parentNode;
  44. parentSpan.insertBefore(hoardLink, parentSpan.firstChild);
  45. }
  46. }
  47. }
  48. function goGoGadget(e){
  49. e.preventDefault();
  50. var hPage = this.getAttribute("href");
  51. pageToDo(hPage);
  52. }
  53. function pageToDo(hPage) {
  54. var fulPage = "https://www.mturk.com" + hPage;
  55. var groupId = fulPage.split("=")[1];
  56. GM_setValue("groupcheck", groupId);
  57. GM_setValue("thePage", fulPage);
  58. GM_setValue("outthewindow", "true");
  59. var nwwi = window.open(fulPage,"nwwi");
  60. }
  61. var newHB = document.getElementsByClassName("newhb");
  62. for (var t = 0; t < newHB.length; t++){
  63. newHB[t].addEventListener( "click", goGoGadget, false);
  64. }
  65. if ((GM_getValue("outthewindow") == "true") && (window.location.toString().indexOf(GM_getValue("groupcheck")) != -1)) {
  66. if (document.getElementsByName("userCaptchaResponse")[0]) {
  67. console.log("Lowlife and ZSMTurker are awesome");
  68. } else {
  69. GM_setValue("outthewindow", "false");
  70. var t = refreshTime * 1000;
  71. var load = setTimeout(function () { GM_setValue("outthewindow", "true"); window.location = GM_getValue("thePage"); }, t);
  72. }
  73. }