Advertisement
SPennLUE

Mturk Preview, Accept and Hoard by Chet Manley

May 18th, 2016
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 = 2; //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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement