
Security News
TypeScript is Porting Its Compiler to Go for 10x Faster Builds
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
nodegame-mturk
Advanced tools
An interactive console to handle standard operations with the Amazon Mechanical Turk Web Service.
Handles operations with Amazon Mechanical Turk (MTurk), such as approve/reject HITS, grant bonuses, assign qualifications, etc.
It can be used as an interactive console or can be called programmatically.
As an interactive console, it can operate in two modes:
npm install nodegame-mturk
git clone https://github.com/nodeGame/nodegame-mturk.git
cd nodegame-mturk
npm install
Create file conf/mturk.conf.js
using the template in the same
directory.
Add your Amazon Web Service (AWS) Keys in the conf file:
accessKeyId: 'XXX',
secretAccessKey: 'YYY'
If you do not have your keys yet, please read here.
region: the AWS server you want to connect to. Default: 'us-east-1'.
nodeGamePath: the absolute path, or relative path from the root folder of the nodegame-mturk directory, to a nodeGame installation directory. Needed only if you want to automatically import results files from nodeGame.
fields: object specifiying the names of the fields for non-standard results files (Important! MTurk default separator is ;).
filter: a function to filter items before importing them: must
return falsy to skip, or truthy to keep. Default: items are
skipped if type
is equal to 'bot' or if 'skip' is truthy.
autoApprove: A boolean flag specifying to auto-approve all imported assignments. Default: false.
maxBonus: maximum bonus payable, an error will be raised otherwise. Default: 10USD.
minBonus: minimum bonus payable, an error will be raised otherwise. Default: 0USD.
autoApprove: A boolean flag specifying to auto-approve all imported assignments. Default: false.
sandbox: Operates in sandbox mode. Default: false
More options available directly in the configuration file.
Start the program from the command line:
node ng-amt.js
These are the main inline options to use when you start the program (the short and long form of each command are equivalent).
-c, --connect: Opens the connection with MTurk Server
-r, --resultsFile : Path to a results file with Exit and Access Codes
-g, --game [minRoom-maxRoom]: Path to a nodeGame game and optional room boundaries
-Q, --getQualificationTypeId: Fetches the last qualification type owned by requester
-H, --getLastHITId: Fetches the id of the latest HIT
-s, --sandbox: Activate sandbox mode
-h, --help: Output usage information
-C, --config : Specifies a configuration file
-i, --inputCodesFile : Path to a codes file with Exit and Access Codes
-t, --token [token]: Unique token for one-time operations
-d, --dry: Dry-run: does not actually send any request to server
-n, --nRetries : How many times a request is repeated in case of error (Def: 0)
-l, --retryInterval : Milliseconds to wait before a request is repeated (Def: 10000)
-o, --throttleInterval : Milliseconds between two consecutive requests (Def: 500)
-q, --quiet: No/minimal output printed to console
After the you started the program, you have access to the interactive console with the following commands:
connect: Creates the AWS client.
uploadResults [options]: Uploads the results to AMT server (approval+bonus+qualification).
grantBonus [options]: Grants bonuses as specified in results codes.
assignQualification [options]: Assigns a Qualification to all results codes.
get : Fetches and stores the requested info.
load [options] : Loads a file.
show [options] : Prints out the requested info.
extendHIT [options]: Extends the HIT.
expireHIT: Expires the HIT.
help [command...]: Provides help for a given command.
exit: Exits application.
Use TAB to autocomplete commands and options.
Here we load a results file, retrieve the last HIT Id and last Qualification Id.
$ node ng-amt -r path/to/results/file.csv -H -Q
info: sandbox-mode: on
info: results file: path/to/results/file.csv
info: validation level: 2
info: result codes: 9
info: creating mturk client...
info: done.
info: retrieved QualificationTypeId: XXXXXXXXXXXXXXXXXXX ("My Qualification")
info: retrieved last HIT id: YYYYYYYYYYYYYYYYYYY ("My Task Name")
ng-amt~$ show Summary
info: **** Results ****
info: tot results: 9
info: to approve: 7
info: to reject: 2
info: **** Bonus ****
info: bonuses: 7
info: bonuses tot: 29.75
info: bonuses mean: 3.31
info: bonuses std: 0.55
info: bonuses min: 2.39
info: bonuses max: 4.06
info: **** Qualification ****
info: qualifications: 0
info: **** Balance ****
info: Your balance is: $1,000
ng-amt$ uploadResults
info: tot results: 9
info: to approve: 9
info: to reject: 0
info: results processed: 9/9
info: approved: 7
info: rejected: 2
error: approve/reject failed: 0
info: Original balance: $1,000 New balance: $993 (diff: 7)
ng-amt$ grantBonus -r "Thank You"
The reason (option -r) is required.
ng-amt$ assignQualification -i 1
The option -i is required. It assigns an integer value for the qualification. Any positive value can be specified. You can use different values to differentiate between participants with the same qualifications.
ng-amt$ get HITId
info: retrieved last HIT id: ****************AADIVNV ("Name of the HIT")
ng-amt$ get HITStatus
info: **** HIT Status ****
info: id: ****************AADIVNV
info: status: NotReviewed
info: pending ass: 0
info: available ass: 49
info: completed ass: 0
info: expiration: Tue Feb 14 2017 10:38:04 GMT-0500 (EST)
info: annotation: BatchId:***641;OriginalHitTemplateId:****37243;
The command above returns the last created HIT. If your HIT is not the last one, you can search through the list of 10 most recent HITs.
ng-amt$ get HITIdList
? Select a HIT
1) 7/20/2019 - ***********************YYNG27N Label Tweets ($1.00)
2) 7/20/2019 - ***********************JS8T6I3 Ultimatum Game ($1.00)
3) 7/19/2019 - ***********************UC8RXR8 Prisoner Dilemma ($3.00)
4) 7/18/2019 - ***********************0IBHN5N Understanding Others ($0.85)
5) 7/12/2019 - ***********************Z82S7GA Tell a joke ($0.25)
6) 7/11/2019 - ***********************FCXM1KN Estimating product preferences ($1.00)
(Move up and down to reveal more choices)
Answer:
ng-amt$ get QualificationTypeId
info: set QualificationTypeId: ***************WZ8QQ6QO ("my_qualification")
The command above returns the last qualification. You can search through the list of the 10 most recent Qualifications.
ng-amt$ get QualificationTypeIdList
? Select a QualificationType
1) 4/20/2019 my_qualification
2) 11/20/2018 another_qualification
3) 8/7/2018 what_is_this_for
4) 7/4/2018 you_made_it
5) 6/4/2018 you_are_definitely_qualified
6) 6/3/2018 you_are_unqualifiable
(Move up and down to reveal more choices)
Answer:
```bash
If you still do not find it, you can add a search query.
ng-amt$ get QualificationTypeIdList -s Finished ? Select a QualificationType
- **Get the Status of a running HIT**
```bash
ng-amt$ get HITStatus
info: **** HIT Status ****
info: id: ****************AADIVNV
info: status: NotReviewed
info: pending ass: 0
info: available ass: 49
info: completed ass: 0
info: expiration: Tue Feb 14 2017 10:38:04 GMT-0500 (EST)
info: annotation: BatchId:***641;OriginalHitTemplateId:****37243;
ng-amt$ load Game mygame -l 60-61
info: loading rooms of game mygame
info: scanning data folder minRoom=60 maxRoom=61
warn: no results in room room000060
info: loading results file: room000061
info: results file: C:\Users\me\nodegame-v5.0.0-dev\games\mygame\data\room000061\bonus.csv
info: result codes: 1
The commands looks for files saved as bonus.csv
, results.csv
, or
codes.csv
in each directory and loads them.
// Require ngmt.
var ngmt = require('nodegame-mturk')();
// Or with a custom config file
// var ngmt = require('nodegame-mturk')({ config: 'path/to/config.js'
});
// Connect, fetch last HIT Id (async), and then assign it to a worker.
ngmt.api.connect({ getLastHITId: true }, function() {
ngmt.modules.qualification.assign({
WorkerId: XXXXXXXXX',
QualificationTypeId: ngmt.config.qualificationId,
IntegerValue: 1
});
});
FAQs
An interactive console to handle standard operations with the Amazon Mechanical Turk Web Service.
The npm package nodegame-mturk receives a total of 7 weekly downloads. As such, nodegame-mturk popularity was classified as not popular.
We found that nodegame-mturk demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
TypeScript is porting its compiler to Go, delivering 10x faster builds, lower memory usage, and improved editor performance for a smoother developer experience.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.