您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Blank Name
当前为
// ==UserScript== // @name Full Queue // @description Blank Name // @version 0.5 // @include https://www.mturk.com/mturk/* // @grant GM_setValue // @grant GM_getValue // @grant GM_deleteValue // @grant GM_openInTab // @author Cristo // @copyright 2012+ // @namespace https://greasyfork.org/users/1973 // ==/UserScript== //GM_deleteValue('QueueDelay'); var que25 = 'https://www.mturk.com/mturk/sortmyhits?searchSpec=HITSearch%23T%231%2325%23-1%23T%23%21Status%210%21rO0ABXQACEFzc2lnbmVk%21%23%21Deadline%211%21%23%21'; var trdLink = document.getElementById('subtabs').getElementsByTagName('a')[2]; var capArr = [], time = 1000, working = false; if (trdLink.href === 'https://www.mturk.com/mturk/myhits'){ trdLink.href = que25; } if (window.location.href === que25 && document.getElementById('collapseall')){ /////////////////////////////////////////////////////////Return all link var collapseall = document.getElementById('collapseall'); var nonBr1 = document.createTextNode('\u00a0\u00a0'); collapseall.parentNode.appendChild(nonBr1); var bar = document.createElement('font'); bar.innerHTML = '|'; bar.setAttribute('color', '#9ab8ef'); collapseall.parentNode.appendChild(bar); var nonBr2 = document.createTextNode('\u00a0\u00a0'); collapseall.parentNode.appendChild(nonBr2); var retunLink = document.createElement('a'); retunLink.addEventListener('click', returnAll, false); retunLink.innerHTML='Return all hits'; retunLink.setAttribute('id', 'retunall'); retunLink.setAttribute('class', 'footer_links'); retunLink.setAttribute('href', '#'); bar.parentNode.appendChild(retunLink); /////////////////////////////////////////////////////////Delay settings var timeTd = document.getElementsByTagName('table')[5].getElementsByTagName('td')[2]; var delayTextN = document.createElement('span'); delayTextN.setAttribute('class', 'capsule_black_text'); delayTextN.innerHTML='Time delay:'; var nonBr3 = document.createTextNode('\u00a0'); var delayTextI = document.createElement('input'); delayTextI.addEventListener('keyup', saveTime, false); delayTextN.setAttribute('input', 'delaytextn'); delayTextI.type = 'text'; delayTextI.title = 'Delay between page requests in seconds'; delayTextI.style.width ='25px'; if(GM_getValue('QueueDelay') === undefined){ GM_setValue('QueueDelay','0.5'); } delayTextI.value = GM_getValue('QueueDelay'); time *= delayTextI.value timeTd.appendChild(delayTextN); timeTd.appendChild(nonBr3); timeTd.appendChild(delayTextI); /////////////////////////////////////////////////////////Open/Return Sets var queTable = document.getElementsByTagName('table')[6]; var container = queTable.firstElementChild; var singleContainer = container.children; /////////////////////////////////////////////////////////Add open/return for (var f = 0; f < singleContainer.length; f++){ var newD = document.createElement('td'); newD.style.paddingRight = "80px"; var handle = singleContainer[f].getElementsByClassName('requesterIdentity')[0]; handle.parentNode.parentNode.insertBefore(newD, handle.parentNode.nextSibling); var butO = document.createElement("span"); butO.addEventListener('click', openSome, false); butO.title = 'Open all ' + handle.innerHTML + ' hits'; butO.style.color = "#1170A0"; butO.style.cursor = "pointer"; butO.style.paddingRight = "50%"; butO.innerHTML = "Open"; newD.appendChild(butO); var butR = document.createElement("span"); butR.addEventListener('click', returnSome, false); butR.title = 'Return all ' + handle.innerHTML + ' hits'; butR.style.color = "#1170A0"; butR.style.cursor = "pointer"; butR.innerHTML = "Return"; newD.appendChild(butR); /////////////////////////////////////////////////////////Current Links var requesterName = singleContainer[f].getElementsByClassName('requesterIdentity')[0].innerHTML; var returnCap = singleContainer[f].getElementsByClassName('capsulelink')[1]; returnCap.addEventListener('click', returnOne, false); var continueCaps = singleContainer[f].getElementsByClassName('capsulelink')[2]; var singleBits = new Object(); singleBits.Name = requesterName; singleBits.Id = returnCap.getElementsByTagName('a')[0].href.split('hitId=')[1]; singleBits.Place = f; capArr.push(singleBits); } } /////////////////////////////////////////////////////////UI Functions function returnAll(rA){ if(working === false){ working = true; masterLoop(0,capArr); } } function returnSome(rS){ if(working === false){ working = true; var returns = []; var clickedName = rS.target.parentNode.parentNode.getElementsByClassName('requesterIdentity')[0].innerHTML; for (var f = 0; f < capArr.length; f++){ if (capArr[f].Name === clickedName){ var someBundle = new Object(); someBundle.Id = capArr[f].Id; someBundle.Place = capArr[f].Place; returns.push(someBundle) } } masterLoop(0,returns); } } function returnOne(rO){ rO.preventDefault(); if(working === false){ working = true; var hitId = rO.target.href.split('hitId=')[1]; for (var f = 0; f < capArr.length; f++){ if(capArr[f].Id === hitId){ break; } } var oneBundle = new Object(); oneBundle.Id = capArr[f].Id; oneBundle.Place = capArr[f].Place; masterLoop(0,[oneBundle]) } } function openSome(oS){ if(working === false){ working = true; var openings = []; var clickedName = oS.target.parentNode.parentNode.getElementsByClassName('requesterIdentity')[0].innerHTML; for (var f = 0; f < capArr.length; f++){ if (capArr[f].Name === clickedName){ openings.push(capArr[f].Id); } } masterLoop(1,openings); } } function saveTime(){ time = 1000; GM_setValue('QueueDelay',delayTextI.value); time *= GM_getValue('QueueDelay'); } /////////////////////////////////////////////////////////Time Loop function masterLoop(ty,mL){ setTimeout(function () { if(ty === 1){ openTab(mL[0]); } else if(ty === 0){ fadeHit(mL[0].Place); returnHit(mL[0].Id); } else{ console.log('tY NF'); } if(mL.length > 1) { mL.shift(); masterLoop(ty,mL); } else { working = false; } }, time); } /////////////////////////////////////////////////////////Page events function returnHit(rH){ var returnUrl = 'https://www.mturk.com/mturk/return?inPipeline=false&hitId='+ rH; getHttp = new XMLHttpRequest(); getHttp.open( 'GET', returnUrl, true ); getHttp.send(null); } function fadeHit(fH){ var orangeT = document.getElementsByClassName('title_orange_text')[0]; var oragneAmount = orangeT.innerHTML.split('1-')[1].split(' of')[0]; if(oragneAmount > 1){ orangeT.innerHTML = '1-'+(oragneAmount-1)+' of '+(oragneAmount-1)+' Results'; } else { document.getElementsByTagName('table')[5].style.display = 'none'; orangeT.innerHTML = '0-'+(oragneAmount-1)+' of '+(oragneAmount-1)+' Results'; } var op = 1; var timer = setInterval(function () { if (op <= 0.1){ clearInterval(timer); singleContainer[fH].style.display = 'none'; } singleContainer[fH].style.opacity = op; op -= op * 0.1; }, 20); } function openTab(oT){ GM_openInTab('https://www.mturk.com/mturk/continue?hitId='+ oT,{active: false, insert: true}); }