Beispiel #1
0
  def post(self):

    type = self.get_value('type', required=False)
    type = self.map_type(type)

    try:
      hit = HIT()
      hit.owner = users.get_current_user()
      hit.lifetime = self.get_value('lifetime', required=True, mapfn=int)
      hit.duration = self.get_value('duration', required=True, mapfn=int)
      hit.approval_delay = self.get_value('approval_delay', required=True, mapfn=int)
      
      hit.hit_approval = self.get_value('hit_approval', required=False, mapfn=int)
      hit.hit_approval_rate = self.get_value('hit_approval_rate', required=True, mapfn=int)
      hit.accepted_hit_rate = self.get_value('accepted_hit_rate', required=True, mapfn=int)
      hit.returned_hit_rate = self.get_value('returned_hit_rate', required=True, mapfn=int)
      hit.abandoned_hit_rate = self.get_value('abandoned_hit_rate', required=True, mapfn=int)
      hit.rejected_hit_rate = self.get_value('rejected_hit_rate', required=True, mapfn=int)
      hit.locale_qualification = self.get_value('locale_qualification', required=True)
      
      hit.frame_height = self.get_value('frame_height', required=True, mapfn=int)
  
      if type != 'MULTIPLE_URLS':
        hit.max_workers = self.get_value('max_workers', required=True, mapfn=int)
        if type != 'PASS_THROUGH':
          hit.min_workers = self.get_value('min_workers', required=True, mapfn=int)

      if type == 'MULTIPLE_URLS':
        hit.location1 = self.get_value('location1', required=True)
        hit.size1 = self.get_value('size1', required=True, mapfn=int)
        hit.location2 = self.get_value('location2', required=False)
        hit.size2 = self.get_value('size2', required=False, mapfn=int)
        hit.location3 = self.get_value('location3', required=False)
        hit.size3 = self.get_value('size3', required=False, mapfn=int)
        hit.location4 = self.get_value('location4', required=False)
        hit.size4 = self.get_value('size4', required=False, mapfn=int)
        hit.location5 = self.get_value('location5', required=False)
        hit.size5 = self.get_value('size5', required=False, mapfn=int)
        hit.location6 = self.get_value('location6', required=False)
        hit.size6 = self.get_value('size6', required=False, mapfn=int)
        hit.location7 = self.get_value('location7', required=False)
        hit.size7 = self.get_value('size7', required=False, mapfn=int)
        hit.location8 = self.get_value('location8', required=False)
        hit.size8 = self.get_value('size8', required=False, mapfn=int)
        hit.location9 = self.get_value('location9', required=False)
        hit.size9 = self.get_value('size9', required=False, mapfn=int)
        hit.location10 = self.get_value('location10', required=False)
        hit.size10 = self.get_value('size10', required=False, mapfn=int)
      else:
        hit.location = self.get_value('location', required=True)

      hit.aws_access_key = self.get_value('aws_access_key', required=True)
      hit.aws_secret_key = self.get_value('aws_secret_key', required=True)
      hit.auth_secret = self.get_value('auth_secret', required=False)
      hit.title = self.get_value('title', required=True)
      hit.description = self.get_value('description', required=True)
      hit.reward = self.get_value('reward', required=True)
      hit.handle_submit = self.get_value('handle_submit', required=False, mapfn=bool)
      hit.always_pay = self.get_value('always_pay', required=False, mapfn=bool)
      hit.sandbox = self.get_value('sandbox', required=False, mapfn=bool)
      hit.blacklist = re.split('[,\s]+', self.request.get('blacklist').strip())
      hit.info = self.get_value('info')

      if type == 'FOCAL_TIME':
        hit.focal_time = iso8601.parse_date(self.get_value('focal_time', required=True).replace('Z', ':00Z'))

      hit.type = type
      hit.next_worker_number = 1
      hit.put()
    except BadValueError, error:
      self.response.set_status(400)
      self.response.out.write(error.reason)
      return
Beispiel #2
0
    def post(self):

        type = self.get_value('type', required=False)
        type = self.map_type(type)

        try:
            hit = HIT()
            hit.owner = users.get_current_user()
            hit.lifetime = self.get_value('lifetime', required=True, mapfn=int)
            hit.duration = self.get_value('duration', required=True, mapfn=int)
            hit.approval_delay = self.get_value('approval_delay',
                                                required=True,
                                                mapfn=int)

            hit.hit_approval = self.get_value('hit_approval',
                                              required=False,
                                              mapfn=int)
            hit.hit_approval_rate = self.get_value('hit_approval_rate',
                                                   required=True,
                                                   mapfn=int)
            hit.accepted_hit_rate = self.get_value('accepted_hit_rate',
                                                   required=True,
                                                   mapfn=int)
            hit.returned_hit_rate = self.get_value('returned_hit_rate',
                                                   required=True,
                                                   mapfn=int)
            hit.abandoned_hit_rate = self.get_value('abandoned_hit_rate',
                                                    required=True,
                                                    mapfn=int)
            hit.rejected_hit_rate = self.get_value('rejected_hit_rate',
                                                   required=True,
                                                   mapfn=int)
            hit.locale_qualification = self.get_value('locale_qualification',
                                                      required=True)

            hit.frame_height = self.get_value('frame_height',
                                              required=True,
                                              mapfn=int)

            if type != 'MULTIPLE_URLS':
                hit.max_workers = self.get_value('max_workers',
                                                 required=True,
                                                 mapfn=int)
                if type != 'PASS_THROUGH':
                    hit.min_workers = self.get_value('min_workers',
                                                     required=True,
                                                     mapfn=int)

            if type == 'MULTIPLE_URLS':
                hit.location1 = self.get_value('location1', required=True)
                hit.size1 = self.get_value('size1', required=True, mapfn=int)
                hit.location2 = self.get_value('location2', required=False)
                hit.size2 = self.get_value('size2', required=False, mapfn=int)
                hit.location3 = self.get_value('location3', required=False)
                hit.size3 = self.get_value('size3', required=False, mapfn=int)
                hit.location4 = self.get_value('location4', required=False)
                hit.size4 = self.get_value('size4', required=False, mapfn=int)
                hit.location5 = self.get_value('location5', required=False)
                hit.size5 = self.get_value('size5', required=False, mapfn=int)
                hit.location6 = self.get_value('location6', required=False)
                hit.size6 = self.get_value('size6', required=False, mapfn=int)
                hit.location7 = self.get_value('location7', required=False)
                hit.size7 = self.get_value('size7', required=False, mapfn=int)
                hit.location8 = self.get_value('location8', required=False)
                hit.size8 = self.get_value('size8', required=False, mapfn=int)
                hit.location9 = self.get_value('location9', required=False)
                hit.size9 = self.get_value('size9', required=False, mapfn=int)
                hit.location10 = self.get_value('location10', required=False)
                hit.size10 = self.get_value('size10',
                                            required=False,
                                            mapfn=int)
            else:
                hit.location = self.get_value('location', required=True)

            hit.aws_access_key = self.get_value('aws_access_key',
                                                required=True)
            hit.aws_secret_key = self.get_value('aws_secret_key',
                                                required=True)
            hit.auth_secret = self.get_value('auth_secret', required=False)
            hit.title = self.get_value('title', required=True)
            hit.description = self.get_value('description', required=True)
            hit.reward = self.get_value('reward', required=True)
            hit.handle_submit = self.get_value('handle_submit',
                                               required=False,
                                               mapfn=bool)
            hit.always_pay = self.get_value('always_pay',
                                            required=False,
                                            mapfn=bool)
            hit.sandbox = self.get_value('sandbox', required=False, mapfn=bool)
            hit.blacklist = re.split('[,\s]+',
                                     self.request.get('blacklist').strip())
            hit.info = self.get_value('info')

            if type == 'FOCAL_TIME':
                hit.focal_time = iso8601.parse_date(
                    self.get_value('focal_time',
                                   required=True).replace('Z', ':00Z'))

            hit.type = type
            hit.next_worker_number = 1
            hit.put()
        except BadValueError, error:
            self.response.set_status(400)
            self.response.out.write(error.reason)
            return