Dashboard

Modifies the MTurk dashboard.

目前为 2016-04-21 提交的版本。查看 最新版本

// ==UserScript==
// @name         Dashboard
// @namespace    http://kadauchi.com/
// @version      1.4.5
// @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)">Today\'s Projected Earnings </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));

    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){
        $.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;
                    $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);
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址