您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Often times you open a hit to find there is no more hits available, even though MTurk reports that there is some left. This script discovers and lets you know
// ==UserScript== // @id Hit_Availability // @name Discover Fake Availabilities // @version 1.0 // @namespace // @author TachisAlopex // @include https://www.mturk.com/mturk/* // @run-at document-end // @description Often times you open a hit to find there is no more hits available, even though MTurk reports that there is some left. This script discovers and lets you know // ==/UserScript== /// Built using Turkopticon X's code, striping it and moding it var TURKOPTICON = "http://turkopticon.differenceengines.com/"; function insertAttrsHTML(n, result) { var parent = n.parentNode; if (result > 0) { if (result == 1) { stuff = "☑ "; } else { stuff = "☒ "; n.style.color = "red"; } } else { stuff += "<strong>E</strong>"; } var pie = parent.getElementsByTagName("img")[0]; pie.parentNode.removeChild(pie); n.innerHTML = stuff + n.innerHTML; } //moded function getHitName(n) { var href = n.getAttribute('href'); if (href==null) return ""; var splitArr = href.split("groupId="); if (splitArr.length == 1) { return ''; } else { return splitArr[1].split("&")[0]; } } //left alone function insertPie(n) { var parent = n.parentNode; var pie = "<img src=\"http://turkopticon.differenceengines.com/pie.gif\" alt=\"Loading...\" />"; parent.innerHTML = pie + parent.innerHTML; } //greatly moded function parseAndInsert(n) { GM_xmlhttpRequest( {method: 'GET', url: n.href, onload: function(results, numReports, numUsers) { result = 0; // result r = results.responseText; if (r != "null") { var splitArr = r.split('alertboxHeader">'); if(splitArr.length == 2) { result = 2; //hits all out } else { result = 1; //all fine } } else { result = -1; //error } insertAttrsHTML(n, result); } }); } //moded (names only) function getHitAnchors() { var anchors = document.getElementsByTagName("a"); var hitAnchors = new Array; for (var i = 0; i < anchors.length; i++) { if (getHitName(anchors[i]) != "") { hitAnchors.push(anchors[i]); } } return hitAnchors; } //============================== Modded (name only (and removed some checks)) var hitAnchors = getHitAnchors(); for (var i = 0; i < hitAnchors.length; i++) { insertPie(hitAnchors[i]); } var hitAnchors = getHitAnchors(); for (var k = 0; k < hitAnchors.length; k++) { setTimeout( (function(k) { return function() { parseAndInsert(hitAnchors[k]); }; } ) (k), 500*k); //need to add a delay so people won't get a maximum refresh rate message }