🏠 Home 

Crowdsource Workstation Monitor

Monitors your CrowdSource work center for favorite tasks


Install this script?
// ==UserScript==
// @name        Crowdsource Workstation Monitor
// @namespace   mralaska
// @description Monitors your CrowdSource work center for favorite tasks
// @include     https://work.crowdsource.com/*
// @exclude     https://work.crowdsource.com/login*
// @exclude     https://work.crowdsource.com/amt/*
// @exclude     https://work.crowdsource.com/history*
// @exclude     https://work.crowdsource.com/feedback*
// @exclude     https://work.crowdsource.com/profile/*
// @version     0.1
// @grant       none
// ==/UserScript==
/*********************************
* This script is still experimental. It was adapted by modifying the DCI Hit Monitor script.
* ALERT mode (default) is activated by setting SOUND_DELAY with any positive number greater than zero (2 should be plenty unless speed is limited)
* best when working this script solely, or have it running in another browser.
* when an alert pops you stop what you are doing and visit the link from the frozen page
* it is best to freeze the page using SLEEP_DELAY for a long enough time to investigate the linke
* LINK mode can be activated by setting SOUND_DELAY to 0 (sound delay is not needed in link mode)
* best when multitasking or if you have a lot of search queries and wish to ignore some alerts
* the script will continue adding links to the capture page but will not force immediate action
* you can still set SLEEP_DELAY to give you time to investigate from the search page or set it similar to RELOAD_TIME to keep searching
*
* To activate this script simply log into your account at https://work.crowdsource.com
* This script will refresh the page at your specified interval using seach queries reflecting your favorite tasks
*********************************/
//===[Settings]===\\
var RELOAD_TIME = '15';  //==[This is the number of seconds between page reloads. Set to '0' to disable script reloading]
//    * 5 by default - any number above 0 but I have had crowdsource crash on me going too fast. 0 will disable reloading.
var SLEEP_DELAY = '600'; //==[This is the number of seconds HIT monitor waits after a notification]
//    * 15 by default - setting SLEEP_DELAY to 300 will give you five minutes - you can refresh the page manually to start it again sooner
var SOUND_DELAY = '2';  //==[This is the number of seconds the alert waits to give the sound time to load]
//    * prevents the alert from snipping the sound
//    * SOUND_DELAY ALSO SETS ALERT/LINK MODE:
//    * Set to 0 for LINK WINDOW MODE (delay not required for link window)
//    * set to any number above 0 for ALERT MODE (try 2 for normal speed)
var POPUP_WIDTH = '600'; // link page width in pixels
var POPUP_HEIGHT= '650'; // link page height in pixels
var SOUND_BYTE  = "http://static1.grsites.com/archive/sounds/musical/musical002.wav";
//==[Change the SOUND_BYTE URL to use whatever sound you want]==\\
//
// Customize your search strings (below)
var needles = new Array(
//==[Below is your requester list. Add or remove whatever you like]==\\
//==[If you make a typo and break it, you'll know, because it won't reload]==\\
// Proper format is QUOTE-STRING-QUOTE-COMMA (adding white space before or after queries does not matter)
// regular searches can use either single quote or double quote if not encapsulating a another quote mark.
// Note that the first entry uses single quotes to include a double quote as part of the search
// Using the double quote as part of the search is copied from the source (inspect element) of the CrowdSource page
'Search: Keywords on Google.com"', // will not alert on similar searches such as "Search: Keywords on Google.com and ..."
"Keywords on Google.ng",
"Keywords on Google.it",
"Keywords on Google.co.uk",
"Keywords on Google.com.sg",
'Ranking of a Url"', //This query also uses the text and double quote as copied from the CrowdSource page via "Inspect Element"
"Ranking of a Url on Google.co.uk",
"Ranking of a Url on Google.it",
"Ranking of a Url on Google.ng"
//==[Be careful NOT to put a comma after the LAST item on your list]==\\
);
var haystack = document.body.innerHTML;
var my_pattern, my_matches, found = "", foundalert = "";
for (var i=0; i<needles.length; i++){
my_pattern = eval("/" + needles[i] + "/gi");
my_matches = haystack.match(my_pattern);
if (my_matches){
// for alert option
foundalert += "\n" + my_matches.length + " found for " + needles[i];
// for link page option
searchString = needles[i].replace(/ /g,"+");
found += "\n \(Total queries="+ needles.length +"\) " + my_matches.length;
found += " matches for <a target=_blank href=https://www.mturk.com/mturk/searchbar?selectedSearchType=hitgroups&searchWords=";
found += searchString +">"+ needles[i] +"</a>";
found += " \(All hits by <a target=_blank href=https://www.mturk.com/mturk/searchbar?selectedSearchType=hitgroups&requesterId=";
found += "A2SUM2D7EOAK1T>CrowdSource</a>\)<br>";
}
}
// If matches were found, send to an alert window with links to open searches
if (found != "") {
mCoinSound = new Audio(SOUND_BYTE);
mCoinSound.play();
if (SOUND_DELAY > 0) {
// create alert and freeze tab
setTimeout(function(){alert("Alert" + foundalert)}, SOUND_DELAY*1000);
} else {
// call function to create link page
CreateAlert(found);
}
var StRefTime = SLEEP_DELAY;
if (StRefTime > 0) setTimeout("location.reload(true);",StRefTime*1000);
}  else {
var StRefTime = RELOAD_TIME;
if (StRefTime > 0) setTimeout("location.reload(true);",StRefTime*1000);
}
function CreateAlert(found){
var LinkWindow = window.open("","CrowdSourceTasks","width="+POPUP_WIDTH+",height="+POPUP_HEIGHT);
LinkWindow.document.body.innerHTML += (found);
checkTitle(LinkWindow,"CrowdSource Search Results");
LinkWindow.document.close();
}
function checkTitle(win,tit) {
if(win.document) { // if loaded
win.document.title = tit; // set title
} else { // if not loaded yet
setTimeout(check, 10); // check in another 10ms
}
}