Web Panda Default Handler

Latest update: Fixed the value in the "survey accepted" notification so that it always uses 2 decimal places for the cents value.

Salem Beats
Daily installs
Total installs
0 1 0
Applies to

Author's Description

How To Use

First-time setup

After the script is installed, you will need to set it up by visiting the following page while logged in to Mechanical Turk:


Once on that page with the userscript installed, you will need to look for a popup or an button to set it up. Protocol handlers are rarely high-priority in browser UIs, so you may have to scan around a little bit before you find where it has been requested.

Chrome: In the current version of Chrome, this appears as a small double-diamond icon inside the URL bar, towards the far-right. You must click this and click "Accept".

Firefox: In the current version of Firefox, it appears as a request below the URL bar. Click "Allow/Accept".

Other Browsers: Other modern browsers should also prompt you in one way or another to allow this extension to handle web+panda:// links. How the request is presented may vary.

After setting up

This script will grab HITs that follow the web+panda:// protocol.

Known issues

"Simultaneously-opened instances cause the script to behave erratically or not work at all until settings are cleared."

Due to some quirks with cross-script synchronization, opening multiple web+panda:// links with this handler simultaneously can cause it to go haywire and not respond properly again until a few key script settings are set.

The root of the issue is the lack of true concurrent programming functionality in Javascript.

What happens is that each script initializes itself based on a snapshot of the stored database settings at the time it was opened. Because this database includes information like instance counts, which are normally incremented at startup and decremented at shutdown, what happens is something like this example:

  • 5 instances are opened,
  • Each instance accesses a copy of the database information that says "You had 0 instances before this...",
  • Each instance increments the instance count based on the number of instances it knew about (0), and stores the new count (1) to the database,
  • The outcome is that when the instances are opened simultaneously, you usually end up with 5 extra copies, but only 1 instance accounted for in the database. This causes issues.

Because of the asynchronous and sometimes undpredictable nature of the GM_ storage functionality, this issue sometimes presents itself if you manually refresh the page (i.e., with F5) as well.

Deregistering Handlers

If you had already used a different extension as your web+panda:// handler and want to switch to this one (or you want to switch away from this one to another one), you may need to go into your browser settings to deregister the current handler setting.

Chrome: In the current version of Chrome, you can manage your handlers by visiting:


web+panda:// Protocol Standard

Currently, the web+panda protocol works loosely as follows:


GID refers to the Hit Set ID (formerly Group ID) of the HIT to catch.

The ?flags&go&here segment can be replaced with various optional flags.

Currently Supported Flags:

Only catch the HIT once, then stop trying to catch it.

Identify the requester's ID by whatever you put as ridGoesHere.

Identify the HIT's title by whatever you put as hitTitleGoesHere.

Identify the HIT's description by whatever you put as hitDescriptionGoesHere.

Identify the HIT value in 0.01 format in USD by whatever you put as hitValueGoesHere.

Identify the requester's name by whatever you put as requesterNameGoesHere.

The URL of the site the link came from, including anchors or any URL information that might be able to zero-in on a specific page or section (i.e., permalinks to forum posts, page numbers or search terms for scrapers, etc.).

Planned Flags:

Define the priority of the HIT. How or whether the catcher implements prioritization may vary, but some ideas may be skipping cycles for low-priority HITs, or more complicated methods of evenly sharing HITs.

All running items who share the highest exclusive priority will prevent other HITs from being checked. 1 can be changed to any integer or decimal number.

Hinting flag to tell the catcher that the HIT is a survey or batch. Most of the time, a catcher should only bother catching a survey once. Also, the catcher may have user-defined default settings that differ between batches and surveys for priority, cycler time, when/whether to give up on HITs, etc.

Indicate that the catcher should give up on this HIT after the given number of attempts. If the catcher inmplements this feature, this should be treated as a rule rather than as a hint, and should override any batch/survey settings. 1000 can be changed to any number of seconds.

Indicate that the catcher should give up on this HIT after the given number of seconds. If the catcher inmplements this feature, this should be treated as a rule rather than as a hint, and should override any batch/survey settings. 1000 can be changed to any number of seconds.

Hints to the catcher the rate at which this HIT should be run. Best conceptualized as Panda Crazy's "Ham Timer". 1000 can be changed to any number of milliseconds.







"Might-be-Added" Flags:





Whether or not to play a sound when the HIT is accepted.