def get(self, key): hit = HIT.get(key) # TODO: track worker details here too? if hit: if hit.type == 'PASS_THROUGH' or datetime.utcnow() > hit.time: # don't check time for pass-through worker = worker_lookup(hit, self.request.get('workerId')) if worker is None: self.not_found() # TODO: log error? else: if hit.min_workers > hit_workers(hit).count(): # TODO: only include active workers in count? if hit.always_pay: self.json({'available': False, 'message': 'Not enough people. You will still be paid for this HIT.', 'submit': True}) else: self.json({'available': False, 'message': 'Not enough people. Please return this HIT.', 'submit': False}) else: #worker.number = next_worker_number(hit) #worker.put() url = target_url(hit, self.request.query_string, worker) self.json({'available': True, 'location': url, 'submit': hit.handle_submit}) else: self.not_found() # or other error code? else: self.not_found()
def notify(hit): hostURL = SANDBOX_HOST if hit.sandbox else HOST connection = MTurkConnection( aws_access_key_id=hit.aws_access_key, aws_secret_access_key=hit.aws_secret_key, host=hostURL ) for worker in hit_workers(hit): params = {"WorkerId": worker.mturkid, "Subject": "It's time to join", "MessageText": "Hello"} connection._process_request("NotifyWorkers", params)
def notify(hit): hostURL = SANDBOX_HOST if hit.sandbox else HOST connection = MTurkConnection(aws_access_key_id=hit.aws_access_key, aws_secret_access_key=hit.aws_secret_key, host=hostURL) for worker in hit_workers(hit): params = { 'WorkerId': worker.mturkid, 'Subject': "It's time to join", 'MessageText': "Hello" } connection._process_request('NotifyWorkers', params)
def get(self, key): hit = HIT.get(key) # TODO: track worker details here too? if hit: if hit.type == 'PASS_THROUGH' or datetime.utcnow( ) > hit.time: # don't check time for pass-through worker = worker_lookup(hit, self.request.get('workerId')) if worker is None: self.not_found() # TODO: log error? else: if hit.min_workers > hit_workers(hit).count( ): # TODO: only include active workers in count? if hit.always_pay: self.json({ 'available': False, 'message': 'Not enough people. You will still be paid for this HIT.', 'submit': True }) else: self.json({ 'available': False, 'message': 'Not enough people. Please return this HIT.', 'submit': False }) else: #worker.number = next_worker_number(hit) #worker.put() url = target_url(hit, self.request.query_string, worker) self.json({ 'available': True, 'location': url, 'submit': hit.handle_submit }) else: self.not_found() # or other error code? else: self.not_found()
def get(self, key): hit = HIT.get(key) if hit: workers = [] for worker in hit_workers(hit): workers.append({ 'last_seen': unix_timestamp(worker.last_seen) , 'remote_addr': worker.remote_addr , 'mturkid': worker.mturkid , 'assignment_id': worker.assignment_id , 'click_go': worker.click_go }) self.json({'workers': workers}) else: self.not_found()
def get(self, key): hit = HIT.get(key) if hit: workers = [] for worker in hit_workers(hit): workers.append({ 'last_seen': unix_timestamp(worker.last_seen), 'remote_addr': worker.remote_addr, 'mturkid': worker.mturkid, 'assignment_id': worker.assignment_id, 'click_go': worker.click_go }) self.json({'workers': workers}) else: self.not_found()