while not passed: #fetching unique UUID for hit to be created in MTurk guid=row[2] mturk_hittype_id=row[8] operation="CreateHIT" parameters2={ "HITTypeId":mturk_hittype_id, 'Question':'<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd"><ExternalURL>'+web_endpoint+'</ExternalURL><FrameHeight>1600</FrameHeight></ExternalQuestion>', 'LifetimeInSeconds':settings["lifetimeinseconds"], "MaxAssignments":settings["max_assignments"], "UniqueRequestToken":guid, } output= mturk.call_turk(operation, parameters2) try: mturk_hit_id=mturk.get_val(output, "HITId") passed=True except: passed=False timeout=timeout*2 print "Sleep for %s seconds " % (timeout) sleep(timeout) logging.info("new HIT created with id: %s" % (mturk_hit_id)) sql="UPDATE hits SET mturk_hit_id=%s, assignments=%s WHERE uuid=%s;" cur2.execute(sql,(mturk_hit_id, settings["max_assignments"], guid)) conn.commit()
logging.info("generating HITTypes for each language") # iterate over each language individually for i, lang in enumerate(langs): logging.info("processing language: %s (#%s out of %s) " %(lang,i+1,len(langs))) # step #1 register HIT type for current language operation="RegisterHITType" parameters2=settings["eslHITtype"] output=mturk.call_turk(operation, parameters2) logging.debug("RegisterHITType response: %s" % (output)) mturk_hittype_id= mturk.get_val(output, "HITTypeId") logging.info("HIT type for language: %s created with id: %s" % (lang, mturk_hittype_id)) #get all words from vocabulary try: conn = psycopg2.connect("dbname='"+settings["esl_dbname"]+"' user='******' host='"+settings["host"]+"'") logging.info("successfully connected to database") except: logging.error("unable to connect to the database") cur = conn.cursor() #getting language_id from database sql="SELECT id from languages where prefix=%s;" cur.execute(sql, (lang,))
settings["vocabularyHITtype"]["Description"] = ( u"Translate 10 words from " + langs_properties[lang]["name"] + u" to English").encode('utf-8') settings["vocabularyHITtype"]["Title"] = (u"Translate 10 words from " + langs_properties[lang]["name"] + u" to English").encode('utf-8') settings["vocabularyHITtype"]["Keywords"] = ( u"translation, vocabulary, dictionary, " + langs_properties[lang]["name"] + u", English, language, research, JHU").encode('utf-8') parameters2 = settings["vocabularyHITtype"] output = mturk.call_turk(operation, parameters2) logging.debug("RegisterHITType response: %s" % (output)) mturk_hittype_id = mturk.get_val(output, "HITTypeId") logging.info("HIT type for language: %s created with id: %s" % (lang, mturk_hittype_id)) sql = "SELECT add_hittype (%s, %s, %s, %s);" cur.execute(sql, ("Vocabulary HIT for " + langs_properties[lang]["name"], mturk_hittype_id, lang_id, "vocabulary 2")) hittype_id2 = cur.fetchone()[0] conn.commit() langs_properties[lang]["hittype_id"] = hittype_id2 sql = "SELECT id from hittypes where language_id=%s and typename='vocabulary';" cur.execute(sql, (lang_id, )) rows = cur.fetchall()
while not passed: #fetching unique UUID for hit to be created in MTurk guid=row[2] mturk_hittype_id=row[8] operation="CreateHIT" parameters2={ "HITTypeId":mturk_hittype_id, 'Question':'<ExternalQuestion xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2006-07-14/ExternalQuestion.xsd"><ExternalURL>'+web_endpoint+'</ExternalURL><FrameHeight>800</FrameHeight></ExternalQuestion>', "Title":"Translate "+(u"Translate words from "+langs_properties[lang]["name"]+u" to English").encode('utf-8'), 'LifetimeInSeconds':settings["lifetimeinseconds"], "MaxAssignments":settings["max_assignments"], "UniqueRequestToken":guid, } output= mturk.call_turk(operation, parameters2) try: mturk_hit_id=mturk.get_val(output, "HITId") passed=True except: passed=False timeout=timeout*2 print "Sleep for %s seconds " % (timeout) sleep(timeout) logging.info("new HIT created with id: %s" % (mturk_hit_id)) sql="UPDATE hits SET mturk_hit_id=%s, assignments=%s WHERE uuid=%s;" cur2.execute(sql,(mturk_hit_id, settings["max_assignments"], guid)) conn.commit()