def pay_oracle_bonus(conn, player): r = conn.execute(text("SELECT o_ass_id, o_approved FROM worker WHERE id = :worker_id"), worker_id=player.worker_id) if r.rowcount > 0: ass_id, o_approved = r.first() sandbox = False amt_services = MTurkServices('AKIAJO3RIMIRNSW3NZAA', 'SGweeGX+EMF7sUWGiJEwRt2gIytVuXY1iOBjOMa3', sandbox) amt_services.connect_to_turk() if not o_approved: try: amt_services.mtc.approve_assignment(ass_id) conn.execute(text('UPDATE worker SET o_approved = :o_approved WHERE id = :worker_id'), o_approved=True, worker_id=player.worker_id) except Exception as e: print e return False reward = get_oracle_reward(conn, player.assignment_id) if reward > 0.0: bonus = MTurkConnection.get_price_as_price(reward) amt_services.mtc.grant_bonus(player.worker_id, ass_id, bonus, "Bonus for assignment " + str(player.assignment_id)) conn.execute(text('UPDATE assignment SET bonus = :bonus, bonus_paid = :bonus_paid' ' WHERE assignment_id = :ass_id AND worker_id = :worker_id'), bonus=reward, ass_id=player.assignment_id, bonus_paid=True, worker_id=player.worker_id)