您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Modifies the MTurk dashboard.
当前为
// ==UserScript== // @name Dashboard // @namespace http://kadauchi.com/ // @version 1.4.7 // @description Modifies the MTurk dashboard. // @author Kadauchi // @icon http://kadauchi.com/avatar1.jpg // @include https://www.mturk.com/mturk/dashboard* // @grant GM_log // @require https://code.jquery.com/jquery-3.0.0-beta1.min.js // ==/UserScript== TodaysProjectedEarnings(); WorstCase(); Changes(); Yearly(); function TodaysProjectedEarnings(){ var TPEhitLOG = {}; if (localStorage.TPEhitLOG){ var TPEhitLOGstorage = localStorage.TPEhitLOG; TPEhitLOG = JSON.parse(TPEhitLOGstorage); } var today = $("a[href^='/mturk/statusdetail?encodedDate']:contains(Today)").eq(0).prop("href"); var pe = Number(localStorage.TPE_pe) || 0; var $peTR = $('<tr class="even">'); var $peTD1 = $('<td class="metrics-table-first-value">'); var $peTD2 = $('<td id="bonus_earnings_amount">'); var $peA = $('<a href="javascript:void(0)"></a>'); var $peSPAN = $('<span class="reward TPE"></span>'); $("td.metrics-table-first-value:contains(Total Earnings)").parent().after($peTR); $peTR.append($peTD1.append($peA),$peTD2.append($peSPAN)); $peA.click(function(){ if ($peA.text() === "Today's Projected Earnings"){ var confirmation = confirm("Are you sure you want to recalculate Today's Projected Earnings?"); if (confirmation === true){ localStorage.TPE_date = "restart"; //window.location = "https://www.mturk.com/mturk/dashboard"; localStorage.TPE_date = date; TPEhitLOG = {}; pe = 0; getDATA(today); $peSPAN.text("$0.00"); } } }); if (today){ var date = today.split("encodedDate=")[1]; if (date === localStorage.TPE_date){ $peSPAN.text("$"+Number(pe).toFixed(2)); getDATA(localStorage.TPE_lastpage); } else { localStorage.TPE_date = date; TPEhitLOG = {}; pe = 0; getDATA(today); $peSPAN.text("$0.00"); } } else { $peSPAN.text("$0.00"); } function getDATA(URL){ var page = URL.match(/Number=([0-9]*)/g); if (page){ $peA.text("Calculating Page "+page.toString().replace(/[^0-9.]/g, "")); } else { $peA.text("Calculating Page 1"); } $.get(URL, function(data){ var $data = $(data); var $hits = $data.find("#dailyActivityTable").find("tr[valign='top']"); if ($hits.length){ var url = $data.find("a:contains(Next)").eq(0).prop("href"); for (var i = 0; i < $hits.length; i++){ var req = $hits.eq(i).find("td.statusdetailRequesterColumnValue").text().trim(); var title = $hits.eq(i).find("td.statusdetailTitleColumnValue").text().trim(); var reward = $hits.eq(i).find("td.statusdetailAmountColumnValue").text().trim(); var status = $hits.eq(i).find("td.statusdetailStatusColumnValue").text().trim(); var reqid = $hits.eq(i).find("a").prop("href").split("requesterId=")[1].split("&")[1]; var hitid = $hits.eq(i).find("a").prop("href").split("HIT+")[1]; if (!TPEhitLOG[hitid]){ TPEhitLOG[hitid] = { req : req, title : title, reward : reward, status : status, reqid : reqid, hitid : hitid }; } } if (url){ getDATA(url); } else { pe = 0; for(var key in TPEhitLOG){ if (TPEhitLOG[key].status !== "Rejected") pe += parseFloat(TPEhitLOG[key].reward.replace(/[^0-9.]/g, "")); } localStorage.TPEhitLOG = JSON.stringify(TPEhitLOG); localStorage.TPE_lastpage = URL; localStorage.TPE_pe = pe; $peA.text("Today's Projected Earnings"); $peSPAN.text("$"+Number(pe).toFixed(2)); } } else { window.setTimeout(getDATA(URL), 2000); } }); } } function WorstCase(){ var submitted = parseInt($("td.metrics-table-first-value:contains(HITs Submitted)").next().text()); var rejected = parseInt($("td.metrics-table-first-value:contains(... Rejected)").next().text()); var $under99 = $('<span style="color: orange;"> ('+Math.round((rejected-((1.0 - 99/100)*submitted))/((1.0 - 99/100)-1))+' ≥ 99%)</span>'); var $under95 = $('<span style="color: red;"> ('+Math.round((rejected-((1.0 - 95/100)*submitted))/((1.0 - 95/100)-1))+' ≥ 95%)</span>'); $("td.metrics-table-first-value:contains(... Pending)").append($under99,$under95); } function Changes(){ } function Yearly(){ var non2016earning = 0; var totalearnings = parseFloat($("#total_earnings_amount").text().replace(/[^0-9.]/g, "")); var earnings2016 = 0; var $reward = $(".reward"); for (var i = 0; i < $reward.length; i++){ if ($reward.eq(i).parent("#yearly_earnings_amount").length){ non2016earning += parseFloat($reward.eq(i).text().replace(/[^0-9.]/g, "")); } } earnings2016 = Number((totalearnings-non2016earning).toFixed(2)).toLocaleString("en"); var $thisyear = $('<tr class="odd"><td class="metrics-table-first-value">2016</td><td id="yearly_earnings_amount"><span class="reward">$'+earnings2016+'</span></td></tr>'); $("#table_yearly_earnings").find(".metrics-table-header-row").after($thisyear); }