您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Searches forum posts for HIT links, follows them, determines if the HIT is still available, and strikes the post if the HIT is ghost or changes the link text to show the automatic approval time if the HIT is available. Using this script will increase the number of page requests you make to mturk and may cause Page Monitor to give false alarms.
当前为
// ==UserScript== // @name mmmturkeybacon Ghost HIT Buster for Forums // @author mmmturkeybacon // @description Searches forum posts for HIT links, follows them, determines if the HIT is still available, and strikes the post if the HIT is ghost or changes the link text to show the automatic approval time if the HIT is available. Using this script will increase the number of page requests you make to mturk and may cause Page Monitor to give false alarms. // @namespace http://userscripts.org/users/523367 // @match http://www.mturkgrind.com/threads/* // @match http://mturkgrind.com/threads/* // @match http://mturkgrind.com/showthread.php?* // @match http://mturkforum.com/showthread.php?* // @match http://turkernation.com/showthread.php?* // @require http://code.jquery.com/jquery-latest.min.js // @version 1.26 // @grant GM_xmlhttpRequest // @grant GM_log // ==/UserScript== var REQUEST_DELAY = 500; // milliseconds var posts_dict = {}; $(document).ready(function () { var $preview_links = $('a[href*="/mturk/preview?"]'); var $hit_posts = $('div[id^="post_message_"]').has('a[href*="/mturk/preview?"]'); $hit_posts.each(function() { var num_links = $(this).find('a[href*="/mturk/preview?"]').length; posts_dict[$(this).attr('id')] = {num_links: num_links, link_cnt: 0, strike_all: false, strike_all_override: false}; }); function bustin_makes_me_feel_good($link) { GM_xmlhttpRequest( { method: "GET", url: $link.attr('href'), onerror: function(){alert('failed');}, onload: function (response) { var $src = $(response.responseText); var id = $link.closest('div[id^="post_message_"]').attr('id'); var maxpagerate = $src.find('td[class="error_title"]:contains("You have exceeded the maximum allowed page request rate for this website.")'); if (maxpagerate.length == 0) { var is_a_HIT = $src.find('input[type="hidden"][name="isAccepted"]').length > 0; if (is_a_HIT) { var hitAutoAppDelayInSeconds = $src.find('input[type="hidden"][name="hitAutoAppDelayInSeconds"]').val(); // 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; var time_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 ')); time_str = time_str.replace(/\s+$/, ''); if (hitAutoAppDelayInSeconds == 0) { time_str = "0 seconds"; } $link.text('[AA: '+time_str+'] -- ' + $link.text()); posts_dict[id].link_cnt++; posts_dict[id].strike_all_override = true; } else { var $hit_container = $link.closest('table[class^="cms_table"]'); if ($hit_container.length > 0) { $hit_container.css('text-decoration', 'line-through'); posts_dict[id].link_cnt++; } else { $link.css('text-decoration', 'line-through'); posts_dict[id].link_cnt++; posts_dict[id].strike_all = true; } } } else { $link.text('[Page Request Rate Error] -- ' + $link.text()); posts_dict[id].link_cnt++; posts_dict[id].strike_all_override = true; } if ((posts_dict[id].strike_all_override == false) && (posts_dict[id].strike_all == true) && (posts_dict[id].link_cnt == posts_dict[id].num_links)) { $link.closest('div[id^="'+id+'"]').css('text-decoration', 'line-through'); } } }); } function preview_links_loop(i) { var $next_link = $preview_links.eq(i); i++; if ($next_link.length > 0) { bustin_makes_me_feel_good($next_link); // Slow don't page request rate. // This won't make the script immune to page request // errors. Retrying after an error would take to long. setTimeout(function(){preview_links_loop(i)}, REQUEST_DELAY); } } if ($preview_links.length > 0) { preview_links_loop(0); } });