typingpool 0.8.13 → 0.8.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/tp-finish +68 -4
- data/bin/tp-review +2 -16
- data/lib/typingpool/amazon/hit.rb +15 -24
- data/lib/typingpool/app/cli/formatter.rb +25 -0
- data/lib/typingpool/app.rb +17 -17
- data/lib/typingpool/test/fixtures/test_amazon_hit_full_time.txt +1 -1
- data/lib/typingpool/test/fixtures/tp_finish_4_id.txt +1 -0
- data/lib/typingpool/test/fixtures/tp_finish_4_sandbox-assignment.csv +7 -0
- data/lib/typingpool/test/fixtures/vcr/test_amazon_hit_base.yml +59 -22
- data/lib/typingpool/test/fixtures/vcr/test_amazon_hit_create.yml +28 -28
- data/lib/typingpool/test/fixtures/vcr/test_amazon_hit_full.yml +21 -21
- data/lib/typingpool/test/fixtures/vcr/test_amazon_hit_full_fromsearchhits.yml +40 -40
- data/lib/typingpool/test/fixtures/vcr/test_amazon_hit_retrievers.yml +61 -61
- data/lib/typingpool/test/fixtures/vcr/test_handles_hits_with_broken_external_question.yml +31 -31
- data/lib/typingpool/test/fixtures/vcr/tp_finish_10.yml +3316 -0
- data/lib/typingpool/test/fixtures/vcr/tp_finish_9.yml +416 -0
- data/lib/typingpool/utility/test/script.rb +52 -13
- data/lib/typingpool/utility/test.rb +3 -3
- data/lib/typingpool/version.rb +1 -1
- data/test/make_tp_finish_fixture_1.rb +27 -0
- data/test/make_tp_finish_fixture_2.rb +25 -0
- data/test/make_tp_finish_fixture_3.rb +26 -0
- data/test/test_integration_script_6_tp_finish.rb +50 -15
- data/test/test_unit_amazon.rb +1 -1
- metadata +9 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 928624f4083c4e62e07f7dda152e4c7e23f3092b
|
|
4
|
+
data.tar.gz: b6ba151430fec154bd4d1ddecef4c108154e33a0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f62939bbac1f46397b3130b5d7e1fac88f2446d56b44135d321fcde02dd30126281eec61eb359bfb48d2e8f039aede7fcb50a111274d20b48cb1f0b88bd8a103
|
|
7
|
+
data.tar.gz: ccf093a7d5402071a6544c9e7999fb9169f5e43a462705c449a05d5500811fcbd7c775eb08c339ddfe4a69ff1160c96ca34a3ae3aae5a56d896799403aceba3a
|
data/bin/tp-finish
CHANGED
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
require 'optparse'
|
|
4
4
|
require 'typingpool'
|
|
5
5
|
require 'fileutils'
|
|
6
|
-
require 'typingpool/utility/test'
|
|
7
|
-
|
|
6
|
+
require 'typingpool/utility/test/script'
|
|
7
|
+
require 'typingpool/app/cli/formatter'
|
|
8
|
+
require 'highline/import'
|
|
9
|
+
|
|
10
|
+
include Typingpool::Utility::Test::Script
|
|
11
|
+
include Typingpool::App::CLI::Formatter
|
|
8
12
|
|
|
9
13
|
options = {}
|
|
10
14
|
OptionParser.new do |commands|
|
|
@@ -19,6 +23,14 @@ OptionParser.new do |commands|
|
|
|
19
23
|
options[:dead] = true
|
|
20
24
|
end
|
|
21
25
|
|
|
26
|
+
commands.on('--force',
|
|
27
|
+
"Do not prompt for confirmation.",
|
|
28
|
+
"Will delete HITs even if they're approved but not in the transcript yet and",
|
|
29
|
+
"will silently skip HITs even if they're submitted and not reviewed") do
|
|
30
|
+
|
|
31
|
+
options[:force] = true
|
|
32
|
+
end
|
|
33
|
+
|
|
22
34
|
commands.on('--sandbox',
|
|
23
35
|
"Test in Mechanical Turk's sandbox") do
|
|
24
36
|
options[:sandbox] = true
|
|
@@ -85,6 +97,58 @@ results = if project
|
|
|
85
97
|
end
|
|
86
98
|
end
|
|
87
99
|
|
|
100
|
+
#Check for potential data loss -- submitted HITs not yet reviewed,
|
|
101
|
+
#approved HITs not yet in the local transcript
|
|
102
|
+
submitted_count = results.select{|r| r.submitted? }.count
|
|
103
|
+
if submitted_count > 0
|
|
104
|
+
unless options[:force]
|
|
105
|
+
are, submissions, them = if submitted_count == 1
|
|
106
|
+
['is', 'submission', 'it']
|
|
107
|
+
else
|
|
108
|
+
['are', 'submissions', 'them']
|
|
109
|
+
end
|
|
110
|
+
STDERR.puts "There #{are} #{submitted_count} unreviewed #{submissions} that cannot be finished."
|
|
111
|
+
choices = ["skip them", "quit"]
|
|
112
|
+
choice = ask_for_selection(choices, 0, prompt_from_choices(choices, 0) + cli_reverse('? '))
|
|
113
|
+
case choice
|
|
114
|
+
when 'quit'
|
|
115
|
+
exit
|
|
116
|
+
when 'skip them'
|
|
117
|
+
STDERR.puts "Skipping unreviewed #{submissions}..."
|
|
118
|
+
end #case choice
|
|
119
|
+
end #unless options[:force]
|
|
120
|
+
results.reject!{|r| r.submitted? }
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
unless options[:force]
|
|
124
|
+
Typingpool::App.find_projects_waiting_for_hits(results.select{|r| r.approved? }, config) do |project, hits|
|
|
125
|
+
assignments = Typingpool::App.assignments_file_for_sandbox_status(options[:sandbox], project)
|
|
126
|
+
unrecorded_approved_hits_in_project = []
|
|
127
|
+
Typingpool::App.with_hits_in_assignments_file(assignments, hits) do |hit, assignment|
|
|
128
|
+
next if assignment['transcript']
|
|
129
|
+
unrecorded_approved_hits_in_project.push(hit)
|
|
130
|
+
end
|
|
131
|
+
if unrecorded_approved_hits_in_project.count > 0
|
|
132
|
+
are, submissions, them, have = if unrecorded_approved_hits_in_project.count == 1
|
|
133
|
+
['is', 'submission', 'it', 'has']
|
|
134
|
+
else
|
|
135
|
+
['are', 'submissions', 'them', 'have']
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
STDERR.puts "There #{are} #{unrecorded_approved_hits_in_project.count} approved #{submissions} that #{have} not been added\nto the transcript for #{project.name}."
|
|
139
|
+
choices = ['add to transcript', 'delete without adding', 'quit']
|
|
140
|
+
choice = ask_for_selection(choices, 0, prompt_from_choices(choices, 0) + cli_reverse('? '))
|
|
141
|
+
case choice
|
|
142
|
+
when 'quit'
|
|
143
|
+
exit
|
|
144
|
+
when 'add to transcript'
|
|
145
|
+
Typingpool::App.record_approved_hits_in_assignments_file(assignments, unrecorded_approved_hits_in_project)
|
|
146
|
+
Typingpool::App.create_transcript(project, assignments)
|
|
147
|
+
end #case choice
|
|
148
|
+
end #if unrecorded_approved_hits_in_project_count > 0
|
|
149
|
+
end #App.find_projects_waiting_for_hits do
|
|
150
|
+
end #unless options[:force]
|
|
151
|
+
|
|
88
152
|
#Remove the results from Mechanical Turk
|
|
89
153
|
fails = []
|
|
90
154
|
results.each do |result|
|
|
@@ -120,8 +184,8 @@ if project
|
|
|
120
184
|
STDERR.puts "Removing #{file} from #{project.remote.host}"
|
|
121
185
|
end
|
|
122
186
|
if options[:sandbox]
|
|
123
|
-
#
|
|
187
|
+
#move sandbox-assignment.csv so we know it's safe to delete
|
|
124
188
|
#audio files when we finish using regular assignment.csv
|
|
125
|
-
|
|
189
|
+
File.rename project.local.file('data', 'sandbox-assignment.csv').to_s, project.local.file('data', 'old-sandbox-assignment.csv').to_s
|
|
126
190
|
end
|
|
127
191
|
end #if project
|
data/bin/tp-review
CHANGED
|
@@ -125,25 +125,11 @@ catch :quitting do
|
|
|
125
125
|
cli_bold(" by ") +
|
|
126
126
|
hit.assignment.worker_id)
|
|
127
127
|
say(cli_encode(hit.transcript.body_as_text(4, 68)))
|
|
128
|
-
prompt = choices
|
|
129
|
-
cli_reverse('(') +
|
|
130
|
-
cli_reverse(cli_bold(c.slice(0).upcase)) +
|
|
131
|
-
cli_reverse(")#{c.slice(1, c.size)}")
|
|
132
|
-
end
|
|
133
|
-
prompt << cli_reverse('[') + prompt.pop + cli_reverse(']')
|
|
134
|
-
prompt = prompt.join(cli_reverse(', '))
|
|
128
|
+
prompt = prompt_from_choices(choices, -1)
|
|
135
129
|
prompt += cli_reverse('? ')
|
|
136
130
|
prompt += cli_reverse("(#{hits_decided_count}/#{hits_needing_decision_count}) ")
|
|
137
131
|
|
|
138
|
-
choice=
|
|
139
|
-
until choice
|
|
140
|
-
input = ask(prompt)
|
|
141
|
-
if input.to_s.match(/^\s*$/)
|
|
142
|
-
choice = choices.last
|
|
143
|
-
elsif not(choice = choices.detect{|possible| possible[0] == input.downcase[0] })
|
|
144
|
-
say("Invalid selection '#{input}'.")
|
|
145
|
-
end
|
|
146
|
-
end #until choice
|
|
132
|
+
choice = ask_for_selection(choices, -1, prompt)
|
|
147
133
|
|
|
148
134
|
case choice
|
|
149
135
|
when 'approve'
|
|
@@ -284,7 +284,11 @@ module Typingpool
|
|
|
284
284
|
#assignments -- hit.full.assignments_completed == 0. This check
|
|
285
285
|
#is only performed when hit.full has already been loaded.)
|
|
286
286
|
def approved?
|
|
287
|
-
|
|
287
|
+
if @full
|
|
288
|
+
return false if full.assignments_completed == 0
|
|
289
|
+
return false if full.status != 'Reviewable'
|
|
290
|
+
end
|
|
291
|
+
assignment.status == 'Approved'
|
|
288
292
|
end
|
|
289
293
|
|
|
290
294
|
#Returns true if this HIT has a rejected assignment associated
|
|
@@ -292,7 +296,11 @@ module Typingpool
|
|
|
292
296
|
#Typingpool::Amazon::HIT::Assignment, see the documentation for
|
|
293
297
|
#approved?.)
|
|
294
298
|
def rejected?
|
|
295
|
-
|
|
299
|
+
if @full
|
|
300
|
+
return false if full.assignments_completed == 0
|
|
301
|
+
return false if full.status != 'Reviewable'
|
|
302
|
+
end
|
|
303
|
+
assignment.status == 'Rejected'
|
|
296
304
|
end
|
|
297
305
|
|
|
298
306
|
#Returns true if this HIT has a submitted assignment associated
|
|
@@ -300,7 +308,10 @@ module Typingpool
|
|
|
300
308
|
#Typingpool::Amazon::HIT::Assignment, see the documentation for
|
|
301
309
|
#approved?.)
|
|
302
310
|
def submitted?
|
|
303
|
-
|
|
311
|
+
if @full
|
|
312
|
+
return false if full.status != 'Reviewable'
|
|
313
|
+
end
|
|
314
|
+
assignment.status == 'Submitted'
|
|
304
315
|
end
|
|
305
316
|
|
|
306
317
|
|
|
@@ -396,18 +407,7 @@ module Typingpool
|
|
|
396
407
|
#this is called, an Amazon HTTP request is typically (but not
|
|
397
408
|
#always) sent.
|
|
398
409
|
def assignment
|
|
399
|
-
|
|
400
|
-
if @full && full.assignments_completed == 0
|
|
401
|
-
#It would be dangerous to do this if the HIT were to be
|
|
402
|
-
#cached, since we would then never check for the
|
|
403
|
-
#assignment again. But we know this HIT won't be cached
|
|
404
|
-
#while it is active, since we only cache approved and
|
|
405
|
-
#rejected HITs.
|
|
406
|
-
@assignment = Assignment::Empty.new
|
|
407
|
-
else
|
|
408
|
-
@assignment = Assignment.new(at_amazon) #expensive
|
|
409
|
-
end
|
|
410
|
-
end
|
|
410
|
+
@assignment ||= Assignment.new(at_amazon) #expensive
|
|
411
411
|
@assignment
|
|
412
412
|
end
|
|
413
413
|
|
|
@@ -449,15 +449,6 @@ module Typingpool
|
|
|
449
449
|
end
|
|
450
450
|
end
|
|
451
451
|
|
|
452
|
-
def assignment_status_match?(status)
|
|
453
|
-
if @full
|
|
454
|
-
return false if full.assignments_completed == 0
|
|
455
|
-
return false if full.status != 'Reviewable'
|
|
456
|
-
end
|
|
457
|
-
assignment.status == status
|
|
458
|
-
end
|
|
459
|
-
|
|
460
|
-
|
|
461
452
|
@@cacheable_assignment_status = Set.new %w(Approved Rejected)
|
|
462
453
|
def cacheable?
|
|
463
454
|
if @ours == false
|
|
@@ -3,6 +3,31 @@ module Typingpool
|
|
|
3
3
|
module CLI
|
|
4
4
|
module Formatter
|
|
5
5
|
require 'highline/import'
|
|
6
|
+
|
|
7
|
+
def prompt_from_choices(choices, default_index)
|
|
8
|
+
prompt = choices.map do |choice|
|
|
9
|
+
cli_reverse('(') +
|
|
10
|
+
cli_reverse(cli_bold(choice.slice(0).upcase)) +
|
|
11
|
+
cli_reverse(")#{choice.slice(1, choice.size)}")
|
|
12
|
+
end
|
|
13
|
+
prompt[default_index] = cli_reverse('[') + prompt[default_index] + cli_reverse(']')
|
|
14
|
+
prompt = prompt.join(cli_reverse(', '))
|
|
15
|
+
prompt
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def ask_for_selection(choices, default_index, prompt)
|
|
19
|
+
selection = nil
|
|
20
|
+
until selection
|
|
21
|
+
input = ask(prompt)
|
|
22
|
+
if input.to_s.match(/^\s*$/)
|
|
23
|
+
selection = choices.last
|
|
24
|
+
elsif not(selection = choices.detect{|possible| possible[0] == input.downcase[0] })
|
|
25
|
+
say("Invalid selection '#{input}'.")
|
|
26
|
+
end
|
|
27
|
+
end #until selection
|
|
28
|
+
selection
|
|
29
|
+
end
|
|
30
|
+
|
|
6
31
|
def cli_bold(text)
|
|
7
32
|
HighLine.color(text, :bold)
|
|
8
33
|
end
|
data/lib/typingpool/app.rb
CHANGED
|
@@ -325,11 +325,11 @@ module Typingpool
|
|
|
325
325
|
# were just assigned (that is, that have one
|
|
326
326
|
# assignment, which has a blank status).
|
|
327
327
|
def record_assigned_hits_in_assignments_file(assignments_file, hits)
|
|
328
|
-
|
|
328
|
+
with_hits_in_assignments_file(assignments_file, hits) do |hit, csv_row|
|
|
329
329
|
csv_row['hit_id'] = hit.id
|
|
330
330
|
csv_row['hit_expires_at'] = hit.full.expires_at.to_s
|
|
331
331
|
csv_row['hit_assignments_duration'] = hit.full.assignments_duration.to_s
|
|
332
|
-
end #
|
|
332
|
+
end #with_hits_in_assignments_file do....
|
|
333
333
|
end
|
|
334
334
|
|
|
335
335
|
#Extracts relevant information from a collection of
|
|
@@ -344,12 +344,12 @@ module Typingpool
|
|
|
344
344
|
# [hits] An enumerable collection of Amazon::HIT instances whose
|
|
345
345
|
# one assignment has the status 'Approved'.
|
|
346
346
|
def record_approved_hits_in_assignments_file(assignments_file, hits)
|
|
347
|
-
|
|
347
|
+
with_hits_in_assignments_file(assignments_file, hits) do |hit, csv_row|
|
|
348
348
|
next if csv_row['transcript']
|
|
349
349
|
csv_row['transcript'] = hit.transcript.body
|
|
350
350
|
csv_row['worker'] = hit.transcript.worker
|
|
351
351
|
csv_row['hit_id'] = hit.id
|
|
352
|
-
end #
|
|
352
|
+
end #with_hits_in_assignments_file do...
|
|
353
353
|
end
|
|
354
354
|
|
|
355
355
|
#Given a Project instance and an array of modified assignment
|
|
@@ -376,7 +376,7 @@ module Typingpool
|
|
|
376
376
|
# [hits] An enumerable collection of Amazon::HIT instances to be
|
|
377
377
|
# deleted.
|
|
378
378
|
def unrecord_hits_in_assignments_file(assignments_file, hits)
|
|
379
|
-
|
|
379
|
+
with_hits_in_assignments_file(assignments_file, hits) do |hit, csv_row|
|
|
380
380
|
unrecord_hit_in_csv_row(csv_row)
|
|
381
381
|
end
|
|
382
382
|
end
|
|
@@ -402,7 +402,7 @@ module Typingpool
|
|
|
402
402
|
# HITs in the Project assignment CSV will be
|
|
403
403
|
# deleted.
|
|
404
404
|
def unrecord_hits_details_in_assignments_file(assignments_file, hits=nil)
|
|
405
|
-
|
|
405
|
+
with_hits_in_assignments_file(assignments_file, hits) do |hit, csv_row|
|
|
406
406
|
unrecord_hit_details_in_csv_row(csv_row)
|
|
407
407
|
end
|
|
408
408
|
end
|
|
@@ -439,6 +439,17 @@ module Typingpool
|
|
|
439
439
|
end #if config.sftp
|
|
440
440
|
end
|
|
441
441
|
|
|
442
|
+
def with_hits_in_assignments_file(assignments_file, hits)
|
|
443
|
+
hits_by_url = self.hits_by_url(hits) if hits
|
|
444
|
+
assignments_file.each! do |csv_row|
|
|
445
|
+
hit = nil
|
|
446
|
+
if hits
|
|
447
|
+
hit = hits_by_url[csv_row['audio_url']] or next
|
|
448
|
+
end
|
|
449
|
+
yield(hit, csv_row)
|
|
450
|
+
end
|
|
451
|
+
end
|
|
452
|
+
|
|
442
453
|
|
|
443
454
|
#protected
|
|
444
455
|
|
|
@@ -455,17 +466,6 @@ module Typingpool
|
|
|
455
466
|
end #begin
|
|
456
467
|
end
|
|
457
468
|
|
|
458
|
-
def record_hits_in_assignments_file(assignments_file, hits)
|
|
459
|
-
hits_by_url = self.hits_by_url(hits) if hits
|
|
460
|
-
assignments_file.each! do |csv_row|
|
|
461
|
-
hit = nil
|
|
462
|
-
if hits
|
|
463
|
-
hit = hits_by_url[csv_row['audio_url']] or next
|
|
464
|
-
end
|
|
465
|
-
yield(hit, csv_row)
|
|
466
|
-
end
|
|
467
|
-
end
|
|
468
|
-
|
|
469
469
|
def record_assignment_upload_status(assignments, uploading, types, status)
|
|
470
470
|
record_in_selected_assignments(assignments, uploading) do |assignment|
|
|
471
471
|
types.each do |type|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
1492202894
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
7e36c4fdb505ff41a447489414245ec2
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
audio_url,project_id,unusual,chunk,chunk_hours,chunk_minutes,chunk_seconds,voices_count,voice1,voice1title,voice2,voice2title,audio_uploaded,assignment_url,assignment_uploaded,hit_id,hit_expires_at,hit_assignments_duration
|
|
2
|
+
https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.00.00.7e36c4fdb505ff41a447489414245ec2.IYUACW.mp3,7e36c4fdb505ff41a447489414245ec2,"Hack Day, Sunnyvale, Chad D",0:22,,,22,2,Ryan,"",Havi,hacker,yes,https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.00.00.7e36c4fdb505ff41a447489414245ec2.OPFEAC.html,yes,32TZXEA1OL0WBNGWPNNWO5YC5P9147,2017-04-15 06:32:54 UTC,18000
|
|
3
|
+
https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.00.22.7e36c4fdb505ff41a447489414245ec2.BVVSJQ.mp3,7e36c4fdb505ff41a447489414245ec2,"Hack Day, Sunnyvale, Chad D",0:22,,,22,2,Ryan,"",Havi,hacker,yes,https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.00.22.7e36c4fdb505ff41a447489414245ec2.DRYBVL.html,yes,3ULIZ0H1VALE76KW3S66TX4Q5L415C,2017-04-15 06:32:55 UTC,18000
|
|
4
|
+
https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.00.44.7e36c4fdb505ff41a447489414245ec2.JBJUVA.mp3,7e36c4fdb505ff41a447489414245ec2,"Hack Day, Sunnyvale, Chad D",0:22,,,22,2,Ryan,"",Havi,hacker,yes,https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.00.44.7e36c4fdb505ff41a447489414245ec2.UFDMYQ.html,yes,306W7JMRYYEY7MLQ3N6YBTRQTNW8B4,2017-04-15 06:32:55 UTC,18000
|
|
5
|
+
https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.01.06.7e36c4fdb505ff41a447489414245ec2.VRYRQT.mp3,7e36c4fdb505ff41a447489414245ec2,"Hack Day, Sunnyvale, Chad D",0:22,,,22,2,Ryan,"",Havi,hacker,yes,https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.01.06.7e36c4fdb505ff41a447489414245ec2.VKDWVB.html,yes,3V7ICJJAZAWXOLYORKGLUHBLR10B40,2017-04-15 06:32:56 UTC,18000
|
|
6
|
+
https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.01.28.7e36c4fdb505ff41a447489414245ec2.OIKCER.mp3,7e36c4fdb505ff41a447489414245ec2,"Hack Day, Sunnyvale, Chad D",0:22,,,22,2,Ryan,"",Havi,hacker,yes,https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.01.28.7e36c4fdb505ff41a447489414245ec2.YMRKUI.html,yes,37VHPF5VYCJHHRDWHN2TMDX8B8W8CB,2017-04-15 06:32:56 UTC,18000
|
|
7
|
+
https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.01.50.7e36c4fdb505ff41a447489414245ec2.VXDFAS.mp3,7e36c4fdb505ff41a447489414245ec2,"Hack Day, Sunnyvale, Chad D",0:22,,,22,2,Ryan,"",Havi,hacker,yes,https://typingpool-test-rtt-12302016.s3.amazonaws.com/Typingpool%27s%20Test%20%26%20Interview.01.50.7e36c4fdb505ff41a447489414245ec2.WLEAXE.html,yes,3566S7OX5DZTUAYFRLL3RHIMWRZ17R,2017-04-15 06:32:56 UTC,18000
|
|
@@ -5,16 +5,16 @@ http_interactions:
|
|
|
5
5
|
uri: https://mechanicalturk.sandbox.amazonaws.com/
|
|
6
6
|
body:
|
|
7
7
|
encoding: UTF-8
|
|
8
|
-
string: Title=Transcribe+MP3+of+1-minute+phone+calll&Description=I+split+up+a+telephone+conversation+into+1-minute+parts%2C+you+transcribe+the+audio+for+one+1-minute+part.&AssignmentDurationInSeconds=600&Reward.Amount=0.01&Reward.CurrencyCode=USD&Keywords=transcription%2C+audio%2C+mp3&AutoApprovalDelayInSeconds=86400&QualificationRequirement.1.QualificationTypeId=000000000000000000L0&QualificationRequirement.1.Comparator=GreaterThanOrEqualTo&QualificationRequirement.1.IntegerValue=95&QualificationRequirement.1.RequiredToPreview=true&QualificationRequirement.2.QualificationTypeId=00000000000000000040&QualificationRequirement.2.Comparator=GreaterThanOrEqualTo&QualificationRequirement.2.IntegerValue=100&QualificationRequirement.2.RequiredToPreview=true&MaxAssignments=1&Question=%3CExternalQuestion+xmlns%3D%22http%3A%2F%2Fmechanicalturk.amazonaws.com%2FAWSMechanicalTurkDataSchemas%2F2006-07-14%2FExternalQuestion.xsd%22%3E%0A++%3CExternalURL%3Ehttps%3A%2F%2Fexample.com%2Fassignments%2F101.html%3C%2FExternalURL%3E%0A++%3CFrameHeight%3E400%3C%2FFrameHeight%3E%0A%3C%2FExternalQuestion%3E%0A&LifetimeInSeconds=1200&RequesterAnnotation=typingpool_url%3Dhttp%253A%252F%252Fwebmasher.com%252Fmturk%252FTestTpInterview.00.00.77421e0a6302f4c8c34e24004a4ad828.YSOQJU.mp3%26amp%3Btypingpool_project_id%3D77421e0a6302f4c8c34e24004a4ad828&Operation=CreateHIT&Service=AWSMechanicalTurkRequester&AWSAccessKeyId=<AWS_KEY>&Timestamp=
|
|
8
|
+
string: Title=Transcribe+MP3+of+1-minute+phone+calll&Description=I+split+up+a+telephone+conversation+into+1-minute+parts%2C+you+transcribe+the+audio+for+one+1-minute+part.&AssignmentDurationInSeconds=600&Reward.Amount=0.01&Reward.CurrencyCode=USD&Keywords=transcription%2C+audio%2C+mp3&AutoApprovalDelayInSeconds=86400&QualificationRequirement.1.QualificationTypeId=000000000000000000L0&QualificationRequirement.1.Comparator=GreaterThanOrEqualTo&QualificationRequirement.1.IntegerValue=95&QualificationRequirement.1.RequiredToPreview=true&QualificationRequirement.2.QualificationTypeId=00000000000000000040&QualificationRequirement.2.Comparator=GreaterThanOrEqualTo&QualificationRequirement.2.IntegerValue=100&QualificationRequirement.2.RequiredToPreview=true&MaxAssignments=1&Question=%3CExternalQuestion+xmlns%3D%22http%3A%2F%2Fmechanicalturk.amazonaws.com%2FAWSMechanicalTurkDataSchemas%2F2006-07-14%2FExternalQuestion.xsd%22%3E%0A++%3CExternalURL%3Ehttps%3A%2F%2Fexample.com%2Fassignments%2F101.html%3C%2FExternalURL%3E%0A++%3CFrameHeight%3E400%3C%2FFrameHeight%3E%0A%3C%2FExternalQuestion%3E%0A&LifetimeInSeconds=1200&RequesterAnnotation=typingpool_url%3Dhttp%253A%252F%252Fwebmasher.com%252Fmturk%252FTestTpInterview.00.00.77421e0a6302f4c8c34e24004a4ad828.YSOQJU.mp3%26amp%3Btypingpool_project_id%3D77421e0a6302f4c8c34e24004a4ad828&Operation=CreateHIT&Service=AWSMechanicalTurkRequester&AWSAccessKeyId=<AWS_KEY>&Timestamp=2017-04-14T20%3A48%3A04Z&Version=2012-03-25&Signature=LEK5VY1M3qEwBiGMGeFMVTRdaN8%3D
|
|
9
9
|
headers:
|
|
10
10
|
Accept:
|
|
11
|
-
-
|
|
11
|
+
- "*/*"
|
|
12
12
|
Accept-Encoding:
|
|
13
13
|
- gzip, deflate
|
|
14
14
|
User-Agent:
|
|
15
|
-
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.
|
|
15
|
+
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.3p222
|
|
16
16
|
Content-Length:
|
|
17
|
-
- '
|
|
17
|
+
- '1515'
|
|
18
18
|
Host:
|
|
19
19
|
- mechanicalturk.sandbox.amazonaws.com
|
|
20
20
|
response:
|
|
@@ -27,31 +27,31 @@ http_interactions:
|
|
|
27
27
|
Transfer-Encoding:
|
|
28
28
|
- chunked
|
|
29
29
|
Date:
|
|
30
|
-
-
|
|
30
|
+
- Fri, 14 Apr 2017 20:48:04 GMT
|
|
31
31
|
Server:
|
|
32
32
|
- MTurk
|
|
33
33
|
body:
|
|
34
34
|
encoding: UTF-8
|
|
35
35
|
string: |-
|
|
36
36
|
<?xml version="1.0"?>
|
|
37
|
-
<CreateHITResponse><OperationRequest><RequestId>
|
|
37
|
+
<CreateHITResponse><OperationRequest><RequestId>76a5c877-b1aa-44fb-811d-5d51225ad022</RequestId></OperationRequest><HIT><Request><IsValid>True</IsValid></Request><HITId>3HYV4299H0CWEPXADE8OC1XBWK9E8A</HITId><HITTypeId>3FJMTJX97O5QAQ6TYMEKGK4K51PA6J</HITTypeId></HIT></CreateHITResponse>
|
|
38
38
|
http_version:
|
|
39
|
-
recorded_at:
|
|
39
|
+
recorded_at: Fri, 14 Apr 2017 20:48:04 GMT
|
|
40
40
|
- request:
|
|
41
41
|
method: post
|
|
42
42
|
uri: https://mechanicalturk.sandbox.amazonaws.com/
|
|
43
43
|
body:
|
|
44
44
|
encoding: UTF-8
|
|
45
|
-
string: HITId=
|
|
45
|
+
string: HITId=3HYV4299H0CWEPXADE8OC1XBWK9E8A&ResponseGroup.0=HITDetail&ResponseGroup.1=HITQuestion&ResponseGroup.2=Minimal&ResponseGroup.3=HITAssignmentSummary&Operation=GetHIT&Service=AWSMechanicalTurkRequester&AWSAccessKeyId=<AWS_KEY>&Timestamp=2017-04-14T20%3A48%3A04Z&Version=2012-03-25&Signature=9u7Eoe6yvC0rveLIqCFcqY%2F27B4%3D
|
|
46
46
|
headers:
|
|
47
47
|
Accept:
|
|
48
|
-
-
|
|
48
|
+
- "*/*"
|
|
49
49
|
Accept-Encoding:
|
|
50
50
|
- gzip, deflate
|
|
51
51
|
User-Agent:
|
|
52
|
-
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.
|
|
52
|
+
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.3p222
|
|
53
53
|
Content-Length:
|
|
54
|
-
- '
|
|
54
|
+
- '336'
|
|
55
55
|
Host:
|
|
56
56
|
- mechanicalturk.sandbox.amazonaws.com
|
|
57
57
|
response:
|
|
@@ -64,35 +64,35 @@ http_interactions:
|
|
|
64
64
|
Transfer-Encoding:
|
|
65
65
|
- chunked
|
|
66
66
|
Date:
|
|
67
|
-
-
|
|
67
|
+
- Fri, 14 Apr 2017 20:48:04 GMT
|
|
68
68
|
Server:
|
|
69
69
|
- MTurk
|
|
70
70
|
body:
|
|
71
71
|
encoding: UTF-8
|
|
72
72
|
string: |-
|
|
73
73
|
<?xml version="1.0"?>
|
|
74
|
-
<GetHITResponse><OperationRequest><RequestId>
|
|
74
|
+
<GetHITResponse><OperationRequest><RequestId>ddace850-1ada-4f09-8d36-22bd1ebcfe0b</RequestId></OperationRequest><HIT><Request><IsValid>True</IsValid></Request><HITId>3HYV4299H0CWEPXADE8OC1XBWK9E8A</HITId><HITTypeId>3FJMTJX97O5QAQ6TYMEKGK4K51PA6J</HITTypeId><HITGroupId>346AHROM60PF93NK7E74UE17XHEHQ0</HITGroupId><CreationTime>2017-04-14T20:48:04Z</CreationTime><Title>Transcribe MP3 of 1-minute phone calll</Title><Description>I split up a telephone conversation into 1-minute parts, you transcribe the audio for one 1-minute part.</Description><Question><ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd">
|
|
75
75
|
<ExternalURL>https://example.com/assignments/101.html</ExternalURL>
|
|
76
76
|
<FrameHeight>400</FrameHeight>
|
|
77
77
|
</ExternalQuestion>
|
|
78
|
-
</Question><Keywords>transcription, audio, mp3</Keywords><HITStatus>Assignable</HITStatus><MaxAssignments>1</MaxAssignments><Reward><Amount>0.01</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$0.01</FormattedPrice></Reward><AutoApprovalDelayInSeconds>86400</AutoApprovalDelayInSeconds><Expiration>
|
|
78
|
+
</Question><Keywords>transcription, audio, mp3</Keywords><HITStatus>Assignable</HITStatus><MaxAssignments>1</MaxAssignments><Reward><Amount>0.01</Amount><CurrencyCode>USD</CurrencyCode><FormattedPrice>$0.01</FormattedPrice></Reward><AutoApprovalDelayInSeconds>86400</AutoApprovalDelayInSeconds><Expiration>2017-04-14T21:08:04Z</Expiration><AssignmentDurationInSeconds>600</AssignmentDurationInSeconds><RequesterAnnotation>typingpool_url=http%3A%2F%2Fwebmasher.com%2Fmturk%2FTestTpInterview.00.00.77421e0a6302f4c8c34e24004a4ad828.YSOQJU.mp3&amp;typingpool_project_id=77421e0a6302f4c8c34e24004a4ad828</RequesterAnnotation><QualificationRequirement><QualificationTypeId>000000000000000000L0</QualificationTypeId><Comparator>GreaterThanOrEqualTo</Comparator><IntegerValue>95</IntegerValue><RequiredToPreview>1</RequiredToPreview></QualificationRequirement><QualificationRequirement><QualificationTypeId>00000000000000000040</QualificationTypeId><Comparator>GreaterThanOrEqualTo</Comparator><IntegerValue>100</IntegerValue><RequiredToPreview>1</RequiredToPreview></QualificationRequirement><HITReviewStatus>NotReviewed</HITReviewStatus><NumberOfAssignmentsPending>0</NumberOfAssignmentsPending><NumberOfAssignmentsAvailable>1</NumberOfAssignmentsAvailable><NumberOfAssignmentsCompleted>0</NumberOfAssignmentsCompleted></HIT></GetHITResponse>
|
|
79
79
|
http_version:
|
|
80
|
-
recorded_at:
|
|
80
|
+
recorded_at: Fri, 14 Apr 2017 20:48:04 GMT
|
|
81
81
|
- request:
|
|
82
82
|
method: post
|
|
83
83
|
uri: https://mechanicalturk.sandbox.amazonaws.com/
|
|
84
84
|
body:
|
|
85
85
|
encoding: UTF-8
|
|
86
|
-
string: HITId=
|
|
86
|
+
string: HITId=3HYV4299H0CWEPXADE8OC1XBWK9E8A&PageSize=100&Operation=GetAssignmentsForHIT&Service=AWSMechanicalTurkRequester&AWSAccessKeyId=<AWS_KEY>&Timestamp=2017-04-14T20%3A48%3A04Z&Version=2012-03-25&Signature=etNglUZrE%2BgkW5ggJk2r0b2%2FtbY%3D
|
|
87
87
|
headers:
|
|
88
88
|
Accept:
|
|
89
|
-
-
|
|
89
|
+
- "*/*"
|
|
90
90
|
Accept-Encoding:
|
|
91
91
|
- gzip, deflate
|
|
92
92
|
User-Agent:
|
|
93
|
-
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.
|
|
93
|
+
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.3p222
|
|
94
94
|
Content-Length:
|
|
95
|
-
- '
|
|
95
|
+
- '250'
|
|
96
96
|
Host:
|
|
97
97
|
- mechanicalturk.sandbox.amazonaws.com
|
|
98
98
|
response:
|
|
@@ -105,14 +105,51 @@ http_interactions:
|
|
|
105
105
|
Transfer-Encoding:
|
|
106
106
|
- chunked
|
|
107
107
|
Date:
|
|
108
|
-
-
|
|
108
|
+
- Fri, 14 Apr 2017 20:48:05 GMT
|
|
109
109
|
Server:
|
|
110
110
|
- MTurk
|
|
111
111
|
body:
|
|
112
112
|
encoding: UTF-8
|
|
113
113
|
string: |-
|
|
114
114
|
<?xml version="1.0"?>
|
|
115
|
-
<
|
|
115
|
+
<GetAssignmentsForHITResponse><OperationRequest><RequestId>c0c8f3ce-d70b-4c9e-a8cf-1ffae938765c</RequestId></OperationRequest><GetAssignmentsForHITResult><Request><IsValid>True</IsValid></Request><NumResults>0</NumResults><TotalNumResults>0</TotalNumResults><PageNumber>1</PageNumber></GetAssignmentsForHITResult></GetAssignmentsForHITResponse>
|
|
116
116
|
http_version:
|
|
117
|
-
recorded_at:
|
|
117
|
+
recorded_at: Fri, 14 Apr 2017 20:48:05 GMT
|
|
118
|
+
- request:
|
|
119
|
+
method: post
|
|
120
|
+
uri: https://mechanicalturk.sandbox.amazonaws.com/
|
|
121
|
+
body:
|
|
122
|
+
encoding: UTF-8
|
|
123
|
+
string: HITId=3HYV4299H0CWEPXADE8OC1XBWK9E8A&Operation=DisableHIT&Service=AWSMechanicalTurkRequester&AWSAccessKeyId=<AWS_KEY>&Timestamp=2017-04-14T20%3A48%3A05Z&Version=2012-03-25&Signature=fWrgtCMIN1rv3NZgpsEY6CFJD58%3D
|
|
124
|
+
headers:
|
|
125
|
+
Accept:
|
|
126
|
+
- "*/*"
|
|
127
|
+
Accept-Encoding:
|
|
128
|
+
- gzip, deflate
|
|
129
|
+
User-Agent:
|
|
130
|
+
- rest-client/2.0.0 (darwin15.6.0 x86_64) ruby/2.3.3p222
|
|
131
|
+
Content-Length:
|
|
132
|
+
- '223'
|
|
133
|
+
Host:
|
|
134
|
+
- mechanicalturk.sandbox.amazonaws.com
|
|
135
|
+
response:
|
|
136
|
+
status:
|
|
137
|
+
code: 200
|
|
138
|
+
message: OK
|
|
139
|
+
headers:
|
|
140
|
+
Content-Type:
|
|
141
|
+
- text/xml
|
|
142
|
+
Transfer-Encoding:
|
|
143
|
+
- chunked
|
|
144
|
+
Date:
|
|
145
|
+
- Fri, 14 Apr 2017 20:48:04 GMT
|
|
146
|
+
Server:
|
|
147
|
+
- MTurk
|
|
148
|
+
body:
|
|
149
|
+
encoding: UTF-8
|
|
150
|
+
string: |-
|
|
151
|
+
<?xml version="1.0"?>
|
|
152
|
+
<DisableHITResponse><OperationRequest><RequestId>88a6a8bd-6dbf-4f90-877e-808ddcf04b89</RequestId></OperationRequest><DisableHITResult><Request><IsValid>True</IsValid></Request></DisableHITResult></DisableHITResponse>
|
|
153
|
+
http_version:
|
|
154
|
+
recorded_at: Fri, 14 Apr 2017 20:48:05 GMT
|
|
118
155
|
recorded_with: VCR 3.0.3
|