ryantate/typingpool

tp-finish throws `undefined method` error

Closed this issue · 3 comments

Tried this with two projects, got the same error- running tp-review *projectname* displays the following output (and doesn't remove the mp3 files or html files from S3)

Removing from Amazon
  Collecting all results
/Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit/full.rb:98:in `external_question_url=': undefined method `inner_text' for nil:NilClass (NoMethodError)
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit/full.rb:20:in `initialize'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:371:in `new'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:371:in `full'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:402:in `stashed_param'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:246:in `url'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:295:in `ours?'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:145:in `block in all_for_project'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:225:in `call'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:225:in `block in filter_ours'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:224:in `select'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:224:in `filter_ours'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:164:in `all'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/lib/typingpool/amazon/hit.rb:145:in `all_for_project'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.1/bin/tp-finish:53:in `<top (required)>'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/bin/tp-finish:19:in `load'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/bin/tp-finish:19:in `<main>'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:14:in `eval'
    from /Users/bartram/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:14:in `<main>'

Thanks for the heads up, and apologies for the long delay. This is due to a dumb bug I introduced long ago when switching Typingpool from Amazon HIT QuestionForms to external questions. Typingpool::Amazon::HIT::Full#external_question_url= used to be smart enough to realize that it might be given a HIT with or without an external question, but then I made it assume every HIT would always have an external question, even though many use QuestionForms instead.

Since this issue only ("only") crops up when you have a Mechanical Turk account containing reviewable HITs with QuestionForms, I never encountered it nor did any of my automated tests. I've added a regression test.

It's closed out with this commit. 08cf750

The changes are also pushed to rubygems.org, so if you do a simple gem uninstall typingpool, gem install typingpool this should be fixed.

Thanks!

On Jun 24, 2013, at 7:57 PM, Ryan Tate notifications@github.com wrote:

Thanks for the heads up, and apologies for the delay. This is due to a dumb bug I introduced long ago when switching Typingpool from Amazon HIT QuestionForms to external questions. Typingpool::Amazon::HIT::Full#extneral_question_url= used to be smart enough to realize that it might be given a HIT with or without an external question, but then I made it assume every HIT would always have an external question, even though many use QuestionForms instead.

Since this issue only ("only") crops up when you have a Mechanical Turk account containing reviewable HITs with QuestionForms, I never encountered it nor did any of my automated tests. I've added a regression test.

It's closed out with this commit. 08cf750

The changes are also pushed to rubygems.org, so if you do a simple gem uninstall typingpool, gem install typingpool this should be fixed.


Reply to this email directly or view it on GitHub.

Hi Ryan, thanks your work on the update. I did this workflow and received the following error messages. What am I missing?


XXXXXXXs-MacBook-Pro:~ XXXXXXX$ tp-make "test2" a.wav --chunks 00:30
Converting a.wav to mp3
Splitting audio into uniform bits
Uploading test2.00.00.mp3 to typingpool-htlxb1i9p8ut47hb.s3.amazonaws.com/ as test2.00.00.2b8ed93330e3e53d9f2aa2e4e3ef7967.GEGTPG.mp3
Uploading test2.00.30.mp3 to typingpool-htlxb1i9p8ut47hb.s3.amazonaws.com/ as test2.00.30.2b8ed93330e3e53d9f2aa2e4e3ef7967.MDIVYX.mp3
Uploading test2.01.00.mp3 to typingpool-htlxb1i9p8ut47hb.s3.amazonaws.com/ as test2.01.00.2b8ed93330e3e53d9f2aa2e4e3ef7967.EVDAIV.mp3
Opening project folder /Users/XXXXXXX/Desktop/Transcripts/test2
Done. Project at:
/Users/XXXXXXX/Desktop/Transcripts/test2
XXXXXXXs-MacBook-Pro:~ XXXXXXX$ tp-assign "test2" speech --sandbox
Figuring out what needs to be assigned
3 assignments total
3 assignments to assign
Deleting old assignment HTML from typingpool-htlxb1i9p8ut47hb.s3.amazonaws.com
Uploading assignment HTML to typingpool-htlxb1i9p8ut47hb.s3.amazonaws.com
Assigning (in sandbox)
Assigned transcription job for 'test2.00.00.mp3'
Assigned transcription job for 'test2.00.30.mp3'
Assigned transcription job for 'test2.01.00.mp3'
Assigned 3 transcription jobs for $0.00
XXXXXXXs-MacBook-Pro:~ XXXXXXX$ tp-finish "test2" --sandbox
Removing from Amazon
Collecting all results
/Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:346:in open_http': 404 Not Found (OpenURI::HTTPError) from /Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:775:inbuffer_open'
from /Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:203:in block in open_loop' from /Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:201:incatch'
from /Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:201:in open_loop' from /Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:146:inopen_uri'
from /Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:677:in open' from /Users/XXXXXXX/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/open-uri.rb:33:inopen'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit/full.rb:59:in external_question' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit/full.rb:70:inexternal_question_param'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:430:in stashed_param' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:246:inurl'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:295:in ours?' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:145:inblock in all_for_project'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:225:in call' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:225:inblock in filter_ours'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:224:in select' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:224:infilter_ours'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:164:in all' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/lib/typingpool/amazon/hit.rb:145:inall_for_project'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/gems/typingpool-0.8.3/bin/tp-finish:53:in <top (required)>' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/bin/tp-finish:19:inload'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/bin/tp-finish:19:in <main>' from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:14:ineval'
from /Users/XXXXXXX/.rvm/gems/ruby-1.9.3-p429/bin/ruby_noexec_wrapper:14:in `

'
XXXXXXXs-MacBook-Pro:~ XXXXXXX$