Overwatch for worker.mturk

A userscript for watching requesters on the mturk platform.

Daily installs
Total installs
15 1 0
Applies to

(change log at bottom)

*This script uses local storage to save your watchlist, deleting cookies will remove your watchlist from the browser. Keep a backup file by using the export function of the script.
*Local storage has a limit, and it may be necessary to clear your cookies from time to time.
*Try not to start search based watchers with a capital "A" to avoid potentially corrupting your export.

A user script for watching requesters on the mturk platform. Overwatch is meant to be a drop in replacement for Hit Monitor. It functions similarly but provides a few extra features.
The best way to familiarize yourself with the script would be read through the descriptions of the various settings and buttons below.

A video that is up to date as of version 1.01.00 but should be more than an adequate tutorial for the near future.

Special thanks to all the contributors of the code, the testers who delivered countless bug reports, and the suggestions of everyone who just wants to see a great script for us all to use...
Favicon was created by GraphicLoads(http://graphicloads.com/) and was found here http://www.iconarchive.com/show/medical-health-icons-by-graphicloads/eye-icon.html
Please contact me [Ethraiel] on Turker Hub as well as any reports you may make here on Greasy Fork, thank you.

Quick Pointers

To import from HM (repeat steps 2 and 3 for OW exports)
1.Get the HM export copied to your clipboard
2.Paste the export into the text bar that's in the upper right portion of the screen.
3.Click import at the bottom left of the screen

To load the script
1.Login to the worker site (This is different than the regular mturk site, you must be logged into both for OW to function properly)
2.Go to https://worker.mturk.com/overwatch
(the script will only run on that url)

To start the script
1.Click the "start" button (it will change text to "running" and turn green)
2.To stop the script, click the same button

Buttons Explained

-Search All-
Will go through all the HITs you qualify for on Mturk and returns any on your watchlist. The button will display the current page on worker.mturk being searched and return to yellow/orange when finished.
Note: This may take a long time if you have many HITs available to you.

Starts the script and stops it, changes color too!
Green means the script is running.
Red means the the stop button has been pressed. (the script will stop on the next interval)
Yellow is just the default color for all the buttons.

-Remove Selected-
Will delete all "red" watchers from your watchlist, there are safety guards in place to make sure you don't do it by accident.

(searchTerm@anyName) means searchstring + "@" + whateverwewanttocallit
name can be anything you want and doesn't affect the script.
RID, GID, partial HIT titles, and partial requester names are all valid searches.

EXa. to watch for Ben Peterson by RID enter "AFEG4RKNBSL4T@Benny Boy" into the text field and click "add watcher"
EXb. to watch for Ben Peterson by GID enter "xxxxGIDxxxxx@Ben Petersdude"
EXc. to watch for Ben Peterson by partial name search enter "en peters@ben peterson" (capitalization is not important)
EXd. watching by partial title is just the same "(for MALES age 25 & UNDER)@ben's HITs"

Clicking this will import whatever export is in the text field. Used after pasting either an HM export, or an Overwatch Export into the text field.

Clicking this will display an editable export. Copy and save it elsewhere.

-Print Log-
Will print a list based on your watchers containing HIT GIDs, HIT titles, and an array of times the script has seen them

-Edit Blocklist-
Will bring up a dialog with instructions for imputing a blocklist. Use requester names separated by commas.
Speechpad,Crowdsurf Support,Foxtrot

Will bring down a menu allowing the input of several settings, when clicked the text of the button will change to "Save". The button must be clicked again for settings to take effect.
*some exceptions

Settings Explained

-Interval(in Sec)-
Sets the interval for the script. For example; set to 5, OW will scrape worker.mturk every 5 seconds.

-(in Min)-
Displays in minutes the amount of time for a GID to be "ignored" once we've seen it.
**see below for more info on

-Alert Tone-
A drop-down allowing selection of 4 alerts; Bloop, Blip, Pew, and TTS.

-TTS Voice-
Allows for selection of 4 voices in chrome and 2 in FF. Male and Female in chrome and Firefox. Chrome also gets UK options.

A slider allowing volume control, alert will play on mouseUp.

-Persistent Display-
Checking this box will keep the entire page on refresh. This should only be used sparingly and can really cause lag after a while. But it's handy if you need to refresh your browser quickly or have a habit of closing windows accidentally.

-Auto Launch-
this will launch a requester page when the script sees a watcher for the first time.

-Desktop Notifications-
Checking this will enable desktop notifications from the script. Checking the box will request permission if it has not been granted

-Detailed Feed-
Will enable/disable the display of more details about each HIT.

-Display Links-
Will enable/disable the display of some helpful links on each HIT. *not finished*

-Error Handling-
This will enable/disable all responses the script attempts to make to page request failures. (including logged out alerts)

-Worker Links-
When checked the accept and preview links will use the worker.mturk site. When unchecked the regular mturk links will be used.

-Qual Watcher-
Having this enabled will alert you to HITs that meet several different criteria (listed below) based on qualifications. There is a lot of junk that pops up so use the blocklist.
(Conditionals for the qual watcher)
Qualified must be false
one of the quals has to either have a test (auto granted flag has been removed)
that qualification must not be the adult content qual.
and then obviously the requester can't be on the blocklist

-Glowing UI-
Will enable/disable the glowing green/red interface that i had fun playing with ;P


*Exceptions to the save button*
-Persistent Display, when active, will save whenever a HIT is found from the watch list.
-All watchlist saving is done when you import, add, or remove watchers.

**What is and how it works**
prevents HITs from alerting us every time our interval searches the site. If you're watching for A9s and a HIT is found, it would be rather annoying to listen to the alert every 5 or so seconds (whatever your interval is set to) so we put that GID to "." The script is basically being told that it should ignore that GID for a set amount of time, your input.
is GID based so multiple GIDs from the same watcher will alert and get put to separately.

Known Issues

login can sometimes not get registered, meaning you have to open a worker.mturk page first then refresh the script when you get logged out

when sizing down the text lines can get jumbled together (probably not going to be addressed soon even though i've had ideas and code thrown my way that might adress it, i dont have time to fine tune every bit HTML for every size screen)

volume slider still glows when glow is disabled (probably not going to get fixed soon, sorry)

Finally the script has been tested in both Chrome/Tampermonkey and FF/Greasemonkey but was written and is edited in Chrome. No other browser is planned to be supported.


v 1.00.01
-Fixed an issue with GID based watchers deleting themselves

v 1.00.02
-"Last Scrape" indicator added to the bottom of the screen; to assure you the script is running.

-Background added to export panel.

-Requester name from Hit feed will now link to mturk requester page.
(special thanks to slothbear for writing the code!)

v 1.00.03
-Edited code for the "add watcher" button.
1.When "add watcher" is clicked without text in the textfield an alert is thrown.
2.When "add watcher" is clicked without a "@" the text is used for both the search term and the watcher name.
F.E. Typing "joe lo" into the textfield then clicking "add watcher" will now result in the same thing as typing "joe lo@joe lo". (thanks to Slothbear!)

-Added in script option for displaying the name of the watcher in the HIT feed. Change 0 to 1 for the var "nameBool" which is 2nd or third line of the script. (thanks to rater9!)

-Added a view toggle button next to the "last scrape" indicator, clicking will result in one of the two main frames taking over the entire screen. (thanks Rdaneel!)

v 1.00.04
-Fixed "Logged out" bug that would stop the script on random request failures (This one was a little rushed, if problems persist please contact me)

v 1.01.00
-Changed button layout. Hid some check boxes and inputs inside a settings menu.

-Changed the way the script saves settings, when clicked the "settings" button changes to "save" that button must be pressed for changes to take effect.

-Changed the way the remove button works. You must select watchers then click the remove selected button.

-Changed dual array based watchlist to a dual object watchlist based on grouping RID and GID watchers together and search strings being grouped separately.

-Changed the way log data is saved. Unfortunately there was no way for me to transfer your logs from 1.00.04 or less to 1.01.00. The log is now attached to your watcher object instead of in a separate container.

-Made various buttons change text to display better information. i.e. the search all button now displays the current page being searched.

-Added check boxes for desktop notifications and detailed display in the settings menu.

-Added qualified bool, number of HITs, reward per HIT, and duration of HIT to the detailed display option

-Added "useful Links" check box that will display the TO page link and contact link for each HIT found (planned to house various other things, send me ideas please)

-Added check box for error handling. Disabling will disable all the actions the script takes when a request fails.

-Added a glowing green and red style to buttons when valid, also a check box to disable that feature.

-Added volume slider.

-Added 2 new sounds and included all 4 notification (3 sounds and TTS) in a drop down menu.

-Added a favicon for easier identification of tab. (credits in code for image)

-Changed tab title to "waiting for HIT" when the script starts running from scratch.

-Changed "greyed" out watcher buttons to reflect only search strings instead of search strings and GIDs.

-Added hover text to almost every element for quick info on each one.

-Added some alerts on common errors i make. i.e. clicking add when i meant to click import.

-The text bar on the top right shouldn't lag when pasting an export anymore.

-Added more thorough comments to code.

-*Rdaneel && Slothbear deserve credit up there for more than one of those ideas and/or the code.

v 1.01.01
-Fixed TO extension bug when using persistent display. TO display wont stack on refresh anymore.

-Added "none" option to the alerts to serve as a de facto mute setting.

-Added "worker link" checkbox. Checking the box will make the script use worker.mturk links and unchecking the box will make the script use regular mturk links.

-Added voice selection drop-down for TTS alerts. Chrome will have US and UK, and Male and Female selections while Firefox only gave me Male and Female(sorry FF users).

-Added 12 and 21 character RID recognition.

-*Special thanks to RicanGuy86, Slothbear, Kadauchi, and Rdaneel!

v 1.01.02
-Added qual watcher feature

-Added blocklist (mainly to support the qual watcher)

-Fixed PRE and Logged out failed request handling

-Changed order of search in monitor function to GID>RID>search instead of RID>GID>search

-Added vars to the top of the script for easier editing of things like pre buffer time and loggout get() attempts before alerts.

v 1.01.03
-Fixed an error with the failed request counter (var = var++ != var = var + 1)<--though i thought it did.

v 1.01.04
-Fixed error with search all where it would run through all non-qualified HITs.

v 1.01.05
-Fixed TTS voice mix-up and edited the qual watcher function (It will only alert to quals with tests now, Amazon has removed the "auto_granted" flag).

v 1.01.06
-Fixed careless error.

v 1.01.07
-Fixed blocklist (refresh no longer needed for effect).
-Added worker.mturk requester page links (legacy links still work too).
-Changed worker.mturk links to default for future users (current users should not be affected).
-Minor TTS fix for US Female (google)

v 1.01.08
-Finally figured out how to select a TTS voice in "the legit way." ( Voices should all match their drop down descriptions now)
-Added an "export to MTS/HF" button which will allow you to import your OW watchlist into Hit Finder. (Tested on HF and HF beta MTS v1.25.5)
-Added a few variables up at the top of the script to make changing the watchlist CSS a little easier.

v 1.01.09
Added GID to detailed feed

v 1.01.10
Changed hit_requirements to project_requirements

v 1.01.11
Added brilliant URL update from ChrisTurk

To-Do list
-OW is now in LTS