// ==UserScript== // @name mmmturkeybacon Enhanced HIT Information Capsule // @author mmmturkeybacon // @description Changes the requester name to a link that searches // mturk for HITs by the requester. Adds a link* to the // average Turkopticon ratings for that requester. Adds // a contact link* for the requester. Displays // hitAutoAppDelayInSeconds in a human readable format. // *If the requesterId can't be found, the link will // be to the Turkopticon search results for the requester // name and the contact link will be missing the requesterId // so it must be added by hand to the end of the contact URL. // @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* // @require http://code.jquery.com/jquery-latest.min.js // @version 1.12 // @grant none // @downloadURL none // ==/UserScript== // API http://api.turkopticon.istrack.in/multi-attrs.php?ids= //var base = 'http://turkopticon.istrack.in'; // mirror var base_TO_URL = 'http://turkopticon.ucsd.edu/'; var base_searchbar_URL = 'https://www.mturk.com/mturk/searchbar?selectedSearchType=hitgroups'; var isAccepted = $('input[type="hidden"][name="isAccepted"]').val(); if (isAccepted == 'false') { var requesterId = $('input[type="hidden"][name="requesterId"]').val(); } else { // Continued HITs don't have the requesterId in a hidden input or // the return URL. We could search the iframe src URL for the // requesterId but it might not be there either, so it's not worth // the extra processing time required. // try to get requesterId from return URL var $return_URL = $('a[href^="/mturk/return?groupId="]'); if ($return_URL.length > 0) { var requesterId = $return_URL.attr('href').split(/[&=]/)[3]; } } /* * Before a HIT is accepted - accept hitId, hitReview hitId, and assignmentId are all the same.
* After a HIT is accepted - submit hitId and assignmentId are the same but hitReview hitId is different. * hitReview hitId is the ID referenced when emailing a requester through the contact form and in bonus * emails. */ /* https://www.mturk.com/mturk/preview?groupId=31ZZN31VRBDDUUF7MJT1JOM7K72RQW https://turkopticon.ucsd.edu/aves/A3V96B9N6FIMDS Report this HIT: https://www.mturk.com/mturk/accept?hitId=3S4TINXCC00MOBNRT35XJL1MDJABOH&prevHitSubmitted=false&prevRequester=Amanda+Carrico&requesterId=A3V96B9N6FIMDS&prevReward=USD1.00&hitAutoAppDelayInSeconds=2592000&groupId=31ZZN31VRBDDUUF7MJT1JOM7K72RQW&signature=ycZZ%2FMZ7kFbEtFL58dCjXbNyWq8%3D&%2Faccept.x=34&%2Faccept.y=10 Report this HIT: https://www.mturk.com/mturk/continue?hitId=3FPRZHYEPZKEXKQ45OH7LET1O473VA Report this HIT: https://www.mturk.com/mturk/return?groupId=31ZZN31VRBDDUUF7MJT1JOM7K72RQW&requesterId=A3V96B9N6FIMDS&hitId=3FPRZHYEPZKEXKQ45OH7LET1O473VA&signature=ycZZ%2FMZ7kFbEtFL58dCjXbNyWq8%3D&externalHit=true&canAccept= https://www.mturk.com/mturk/return?requesterId=&hitId=3FPRZHYEPZKEXKQ45OH7LET1O473VA&externalHit=true&canAccept= https://www.mturk.com/mturk/return?requesterId=&hitId=3FPRZHYEPZKEXKQ45OH7LET1O473VA&externalHit=true&canAccept= ///////////////////////////////////// https://www.mturk.com/mturk/preview?groupId=3U2H1DGWNO4QVIZ0P9FQRTMIXRHF4V https://turkopticon.ucsd.edu/AG2TEC2P4YK85 https://www.mturk.com/mturk/previewandaccept?groupId=3U2H1DGWNO4QVIZ0P9FQRTMIXRHF4V https://www.mturk.com/mturk/return?groupId=3U2H1DGWNO4QVIZ0P9FQRTMIXRHF4V&requesterId=&hitId=38JBBYETQOAZ7OZM2VQCNCCICQ5E4E&externalHit=true&canAccept= */ var hitReview_hitId = $('form[name="hitForm"][action="/mturk/hitReview"]').children('input[name="hitId"]').val(); var requesterName_node = $('a[id="requester.tooltip"]:contains("Requester:")').parent().next(); var requesterName = requesterName_node.text().trim(); var requesterName_plus = requesterName.replace(/ /g, '+'); if (requesterId) { var searchbar_URL = base_searchbar_URL+'&requesterId='+requesterId; var searchbar_link = ''+requesterName+" ("+requesterId+")"+''; var avg_TO_URL = base_TO_URL+'aves/'+requesterId; var avg_TO_link = 'Averaged Turkopticon Ratings'; //var contact_URL = 'https://www.mturk.com/mturk/contact?subject=Regarding+Amazon+Mechanical+Turk+HIT+'+hitReview_hitId+'&requesterId='+requesterId+'&requesterName='+requesterName_plus; var contact_URL = 'https://www.mturk.com/mturk/contact?subject=Regarding+Amazon+Mechanical+Turk+HIT+'+hitReview_hitId+'&requesterName='+requesterName_plus+'&requesterId='+requesterId; var contact_link = 'Contact Requester'; var link_row_html = avg_TO_link+'  '+contact_link; } else { var searchbar_URL = base_searchbar_URL+'&searchWords='+requesterName_plus; var searchbar_link = ''+requesterName+''; var search_TO_url = base_TO_URL+'main/search?query='+requesterName_plus+'&commit=Search'; var search_TO_link = 'Search for Requester on Turkopticon'; var contact_URL = 'https://www.mturk.com/mturk/contact?subject=Regarding+Amazon+Mechanical+Turk+HIT+'+hitReview_hitId+'&requesterName='+requesterName_plus+'&requesterId='; var contact_link = 'Contact Requester (requesterId must be added by hand!)'; var link_row_html = search_TO_link+'  '+contact_link; } requesterName_node.html(searchbar_link); var hitAutoAppDelayInSeconds = $('input[type="hidden"][name="hitAutoAppDelayInSeconds"]').val(); //hitAutoAppDelayInSeconds = 2*(86400) + 1*(3600) + 2*(60) + 2; //hitAutoAppDelayInSeconds = 2*(86400) + 2*(60) + 2; //hitAutoAppDelayInSeconds = 2*(60) + 2; //hitAutoAppDelayInSeconds = 0; // 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 ')); if (hitAutoAppDelayInSeconds == 0) { time_str = "0 seconds"; } var requesterName_row = $('a[id="requester.tooltip"]:contains("Requester:")').parent().parent(); requesterName_row.after(' Automatically Approved:  '+time_str+''); requesterName_row.after(' '+link_row_html+'');