Preview, Accept and Hoard

Preview, Accept and auto refresh for mturk

目前為 2014-06-14 提交的版本,檢視 最新版本

  1. // ==UserScript==
  2. // @name Preview, Accept and Hoard
  3. // @author Chet Manley - The good parts
  4. // @author Cristo - The bad parts
  5. // @description Preview, Accept and auto refresh for mturk
  6. // @include https://www.mturk.com/mturk/findhits*
  7. // @include https://www.mturk.com/mturk/preview*
  8. // @include https://www.mturk.com/mturk/searchbar*
  9. // @include https://www.mturk.com/mturk/sorthits*
  10. // @include https://www.mturk.com/mturk/sortsearchbar*
  11. // @include https://www.mturk.com/mturk/viewhits*
  12. // @include https://www.mturk.com/mturk/viewsearchbar*
  13. // @version 0.0.1.20140614053925
  14. // @namespace https://greasyfork.org/users/1973
  15. // ==/UserScript==
  16.  
  17. var refreshTime = 2; //In seconds
  18.  
  19.  
  20. var previewLinkEls = document.querySelectorAll('span.capsulelink a');
  21. for (var i = 0; i < previewLinkEls.length; i++) {
  22. var previewLink = previewLinkEls[i].getAttribute('href');
  23. previewLinkEls[i].innerHTML = "View";
  24. if (previewLink && previewLink.split('?')) {
  25. var previewLinkArray = previewLink.split('?');
  26. if (previewLinkArray[0] == '/mturk/preview') {
  27. var previewAndAcceptLink = previewLinkArray[0] + 'andaccept?' + previewLinkArray[1]; //Warning ??
  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. GM_setValue("thePage", fulPage);
  54. GM_setValue("outthewindow", "true");
  55. var nwwi = window.open(fulPage,"nwwi");
  56. }
  57. var newHB = document.getElementsByClassName("newhb");
  58. for (var t = 0; t < newHB.length; t++){
  59. newHB[t].addEventListener( "click", goGoGadget, false);
  60. }
  61. if ((GM_getValue("outthewindow") == "true") && (window.location.toString() == GM_getValue("thePage"))) {
  62. GM_setValue("outthewindow", "false");
  63. var t = refreshTime * 1000;
  64. var load = setTimeout(function () { GM_setValue("outthewindow", "true"); location.reload(true); }, t);
  65. }