// ==UserScript==
// @name Mturk Dashboard
// @namespace http://kadauchi.com/
// @version 1.5.1
// @description Modifies the MTurk dashboard.
// @author Kadauchi
// @icon http://kadauchi.com/avatar1.jpg
// @include https://www.mturk.com/mturk/dashboard*
// @grant GM_log
// @grant GM_setClipboard
// @require https://code.jquery.com/jquery-3.0.0-beta1.min.js
// @downloadURL none
// ==/UserScript==
Todays_Projected_Earnings();
Best_Worst_Case();
Real_Stats();
Changes();
Yearly();
function Todays_Projected_Earnings(){
var TPEhitLOG = {}; var TPEdetailsLOG = {};
if (localStorage.TPEhitLOG){
TPEhitLOG = JSON.parse(localStorage.TPEhitLOG);
}
var today = $("a[href^='/mturk/statusdetail?encodedDate']:contains(Today)").eq(0).prop("href");
var pe = Number(localStorage.TPE_pe) || 0;
var $peTR = $('
');
var $peTD1 = $('
');
var $peTD2 = $('
');
var $peA = $('');
var $TPE_details = $('Details');
var $peSPAN = $('');
$("td.metrics-table-first-value:contains(Total Earnings)").parent().after($peTR);
$peTR.append($peTD1.append($peA,$TPE_details),$peTD2.append($peSPAN));
var $TPED_table = $('
');
var $TPED_tboday = $('');
var $TPED_tr_1 = $('
Today\'s Projected Earnings Details
');
var $TPED_tr_2 = $('
');
var $TPED_tr_h = $('
Requester
Submitted
Projected
');
$("#table_yearly_earnings").after($TPED_table);
$TPED_table.append($TPED_tboday);
$TPED_tboday.append($TPED_tr_1,$TPED_tr_2);
$("#tbody2").append($TPED_tr_h);
var $export = $('');
$("#TPE_tr").children().eq(2).append($export);
$export.click(function(){
var exportcode = "[b]Today's Projected Earnings: $"+Number(pe).toFixed(2)+"[/b]\n\n"+
"[table][tr][th][b]Requester[/b][/th][th][b]Submitted[/b][/th][th][b]Projected[/b][/th][/tr]";
var x_sorted = Object.keys(TPEdetailsLOG).sort(function(a,b){return TPEdetailsLOG[a].reward - TPEdetailsLOG[b].reward;});
for (var j = x_sorted.length-1; j > -1; j--){
var xkey = x_sorted[j];
var x_req = TPEdetailsLOG[xkey].req;
var x_submitted = TPEdetailsLOG[xkey].submit;
var x_reward = Number(TPEdetailsLOG[xkey].reward).toFixed(2);
var x_status = TPEdetailsLOG[xkey].status;
exportcode += "[tr][td]"+x_req+"[/td][td]"+x_submitted+"[/td][td]"+x_reward+"[/td][/tr]\n";
}
GM_setClipboard(exportcode);
alert("Forum Export copied to your clipboard.");
});
$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){
TPEhitLOG = {}; pe = 0;
getDATA(today);
$peSPAN.text("$0.00");
}
}
});
$TPE_details.click(function(){
$TPE_details.find("img").attr("src", ($TPE_details.find("img").attr("src") === "/media/more.gif") ? "/media/less.gif" : "/media/more.gif");
$TPED_table.toggle();
});
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 {
$peA.text("Today's Projected Earnings");
$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, ""));
}
if (!TPEdetailsLOG[TPEhitLOG[key].reqid]){
TPEdetailsLOG[TPEhitLOG[key].reqid] = {
req : TPEhitLOG[key].req,
submit : 1,
reward : parseFloat(TPEhitLOG[key].reward.replace(/[^0-9.]/g, ""))
};
}
else {
TPEdetailsLOG[TPEhitLOG[key].reqid].submit = TPEdetailsLOG[TPEhitLOG[key].reqid].submit + 1;
TPEdetailsLOG[TPEhitLOG[key].reqid].reward = TPEdetailsLOG[TPEhitLOG[key].reqid].reward + parseFloat(TPEhitLOG[key].reward.replace(/[^0-9.]/g, ""));
}
}
var d_sorted = Object.keys(TPEdetailsLOG).sort(function(a,b){return TPEdetailsLOG[a].reward - TPEdetailsLOG[b].reward;});
var oddeven = true;
for (var j = d_sorted.length-1; j > -1; j--){
var dkey = d_sorted[j];
var d_req = TPEdetailsLOG[dkey].req;
var d_submitted = TPEdetailsLOG[dkey].submit;
var d_reward = Number(TPEdetailsLOG[dkey].reward).toFixed(2);
if (oddeven){
oddeven = false;
$("#tbody2").append('