您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Saves automatic approval time and shows the time
// ==UserScript== // @name mmmturkeybacon Save Automatic Approval Time // @author mmmturkeybacon // @description Saves automatic approval time and shows the time // remaining until approval in the status field of // completed HITs that are still pending approval. // Displays the total automatic approval time when // the mouse pointer hovers over the status field. // @namespace http://userscripts.org/users/523367 // @match https://www.mturk.com/mturk/accept* // @match https://www.mturk.com/mturk/preview* // @match https://www.mturk.com/mturk/continue* // @match https://www.mturk.com/mturk/submit // @match https://www.mturk.com/mturk/return* // @match https://www.mturk.com/mturk/statusdetail* // @require http://code.jquery.com/jquery-latest.min.js // @version 1.54 // @grant none // ==/UserScript== /* * Automatic approval data is saved whenever a HIT page is unloaded. Usually when a * HIT page is unloaded it means the HIT was submitted, but this isn't necessarily * so. It could also be that the user accepted the HIT, then closed the tab to * work on the HIT from his queue later. If this is the case, once the user eventually * submits the HIT the automatic approval data will be updated when the page unloads. * However, if the user returns the HIT then automatic approval data will have been * saved in local storage that isn't associated with any completed HITs. There's really * no good way to prevent this from happening or to remove the data. */ var hit_returned = false; function create_title_str(hitId) { var title_str = ''; var autoapprove_data = localStorage.getItem('autoapprove_data.' + hitId); if (autoapprove_data == null) { return title_str; } var hitAutoAppDelayInSeconds = parseInt(autoapprove_data.split('?')[1]); if (hitAutoAppDelayInSeconds) { // time formatting code modified from http://userscripts.org/scripts/show/169154 var days = Math.floor((hitAutoAppDelayInSeconds/(60*60*24))); var hours = Math.floor((hitAutoAppDelayInSeconds/(60*60)) % 24); var mins = Math.floor((hitAutoAppDelayInSeconds/60) % 60); var secs = hitAutoAppDelayInSeconds % 60; title_str = 'Automatically approved after '; title_str += (days == 0 ? '' : days + (days > 1 ? ' days ' : ' day ')) + (hours == 0 ? '' : hours + (hours > 1 ? ' hours ' : ' hour ')) + (mins == 0 ? '' : mins + (mins > 1 ? ' minutes ' : ' minute ')) + (secs == 0 ? '' : secs + (secs > 1 ? ' seconds' : ' second')); } else if (hitAutoAppDelayInSeconds == 0) { title_str = "Automatically approved after 0 seconds"; } return title_str; } function create_time_remaining_str(hitId) { var time_str = ''; var autoapprove_data = localStorage.getItem('autoapprove_data.' + hitId); if (autoapprove_data == null) { return time_str; } var submit_time_seconds = parseInt(autoapprove_data.split('?')[0]); var hitAutoAppDelayInSeconds = parseInt(autoapprove_data.split('?')[1]); var now_in_seconds = new Date().getTime()/1000; var seconds_remaining = Math.round(submit_time_seconds + hitAutoAppDelayInSeconds - now_in_seconds); if (seconds_remaining > 0) { // time formatting code modified from http://userscripts.org/scripts/show/169154 var days = Math.floor((seconds_remaining/(60*60*24))); var hours = Math.floor((seconds_remaining/(60*60)) % 24); var mins = Math.floor((seconds_remaining/60) % 60); var secs = seconds_remaining % 60; time_str = '\n('; time_str += (days == 0 ? '' : days + 'd') + (hours == 0 ? '' : hours + 'h') + (mins == 0 ? '' : mins + 'm') + (secs == 0 ? '' : secs + 's'); time_str += ')'; if (seconds_remaining == 0) { time_str = "\n(0 seconds)"; } } return time_str; } function store_autoapprove_data() { var $isAccepted = $('input[type="hidden"][name="isAccepted"][value="true"]') if ($isAccepted.length > 0 && !hit_returned) { var hitReview_hitId = $('form[name="hitForm"][action="/mturk/hitReview"] input[name="hitId"]').val(); var hitAutoAppDelayInSeconds = $('input[type="hidden"][name="hitAutoAppDelayInSeconds"]').val(); var now_in_seconds = new Date().getTime()/1000; var autoapprove_data = now_in_seconds +'?'+ hitAutoAppDelayInSeconds; localStorage.setItem('autoapprove_data.' + hitReview_hitId, autoapprove_data); } } if(typeof(Storage)!=="undefined") { // modified return click snippet from https://userscripts.org/scripts/review/175838 $('img[src="/images/return_hit.gif"]').parent().click(function() { hit_returned = true; }); window.addEventListener('beforeunload', store_autoapprove_data); var $requesters = $('td[class="statusdetailRequesterColumnValue"]'); if ($requesters.length > 0) { $requesters.each(function() { // trick to get hitId snippet from http://userscripts.org/scripts/show/170845 var hitId = $(this).find('a[href^="/mturk/contact?"]').attr('href').match(/[A-Z0-9]{30}/); var $status_value = $(this).parent().find('td[class="statusdetailStatusColumnValue"]'); var title_str = create_title_str(hitId); $status_value.attr('title', title_str); if ($status_value.text() == 'Pending Approval') { var time_remaining_str = create_time_remaining_str(hitId); var status_value = $status_value.text() + time_remaining_str; $status_value.text(status_value); } }); } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址