Preview, Accept and Hoard

Adds an Accept and Hoard link to every Hit Capsule.

当前为 2014-08-17 提交的版本,查看 最新版本

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