def get(self): try: # TODO(amantri): Switch to post source = self.request.get('source') message = self.request.get('message') time = self.request.get('time') except (TypeError, ValueError): self.response.out.write("<html><body><p>Invalid inputs</p></body></html>") return # try to upload to person finder, if it fails (i.e. has no #) try: logging.debug('trying to use formatted parsing method') person = parse_formatted_message(time, source, message) upload_to_personfinder(person) fields = split_message_to_fields(message) reply = 'Added to Person Finder.\nName: %s %s' % (fields['person_first_name'], fields['person_last_name']) # limit to 140 reply = reply[0:139] except: logging.debug('falling back on crowdsource parsing method') message = self.create_task_for_crowdsource(time, source, message) message.put() atomic_add_to_counter(counter_name_new, 1) reply = "Sent to crowd-source for input. For instant upload to Person Finder, use the format last_name#first_name#status_of_person#description" self.response.out.write("%s" % reply)
def get(self): try: # TODO(amantri): Switch to post source = self.request.get('source') message = self.request.get('message') time = self.request.get('time') except (TypeError, ValueError): self.response.out.write( "<html><body><p>Invalid inputs</p></body></html>") return # try to upload to person finder, if it fails (i.e. has no #) try: logging.debug('trying to use formatted parsing method') person = parse_formatted_message(time, source, message) upload_to_personfinder(person) fields = split_message_to_fields(message) reply = 'Added to Person Finder.\nName: %s %s' % ( fields['person_first_name'], fields['person_last_name']) # limit to 140 reply = reply[0:139] except: logging.debug('falling back on crowdsource parsing method') message = self.create_task_for_crowdsource(time, source, message) message.put() atomic_add_to_counter(counter_name_new, 1) reply = "Sent to crowd-source for input. For instant upload to Person Finder, use the format last_name#first_name#status_of_person#description" self.response.out.write("%s" % reply)
def update_parsed_message(self): logging.debug('Request: %s' % self.request) message = Message.get_by_id(long(self.request.get('id'))) p = models.Person() namespace = "rhok1.com" unique_id = uuid.uuid1() p.person_record_id = '%s/person.%s' % (namespace, unique_id) p.author_name = message.source_phone_number for attr in models.PFIF_13_PERSON_ATTRS: if self.request.get(attr): logging.debug('%s: %s' % (attr, self.request.get(attr))) setattr(p, attr, self.request.get(attr)) for attr in models.PFIF_13_NOTE_ATTRS: if self.request.get(attr): if not p.notes: n = models.Note() n.note_record_id = '%s/note.%s' % (namespace, unique_id) n.author_name = message.source_phone_number p.notes.append(n) setattr(p.notes[0], attr, self.request.get(attr)) logging.debug('###### Here') message.status_timestamp = datetime.datetime.now() if self.request.get('parseable').lower() == 'false': message.status = 'UNPARSEABLE' else: upload_to_personfinder(p) message.status = 'SENT' logging.debug('Person: %s' % repr(p)) logging.debug('Message: %s' % message) message.put()
def update_parsed_message(self): logging.debug('update parsed message method called') logging.debug('Request: %s' % self.request) message = Message.get_by_id(long(self.request.get('id'))) p = models.Person() namespace = "rhok1.com" unique_id = uuid.uuid1() p.person_record_id = '%s/person.%s' % (namespace, unique_id) p.author_name = message.source_phone_number for attr in models.PFIF_13_PERSON_ATTRS: if self.request.get(attr): logging.debug('%s: %s' % (attr, self.request.get(attr))) setattr(p, attr, self.request.get(attr)) for attr in models.PFIF_13_NOTE_ATTRS: if self.request.get(attr): if not p.notes: n = models.Note() n.note_record_id = '%s/note.%s' % (namespace, unique_id) n.author_name = message.source_phone_number n.source_date = convert_datetime_to_rfc3339( message.message_timestamp) n.text = "raw message text received : " + message.message p.notes.append(n) setattr(p.notes[0], attr, self.request.get(attr)) logging.debug('###### Here') message.status_timestamp = datetime.datetime.now() errorparsing = False if self.request.get('parseable').lower() == 'false': message.status = 'UNPARSEABLE' errorparsing = True else: upload_to_personfinder(p) message.status = 'SENT' logging.debug('Person: %s' % repr(p)) logging.debug('Message: %s' % message) message.put() atomic_add_to_counter(counter_name_new, -1) return errorparsing
def update_parsed_message(self): logging.debug('update parsed message method called') logging.debug('Request: %s' % self.request) message = Message.get_by_id(long(self.request.get('id'))) p = models.Person() namespace = "rhok1.com" unique_id = uuid.uuid1() p.person_record_id = '%s/person.%s' % (namespace, unique_id) p.author_name = message.source_phone_number for attr in models.PFIF_13_PERSON_ATTRS: if self.request.get(attr): logging.debug('%s: %s' % (attr, self.request.get(attr))) setattr(p, attr, self.request.get(attr)) for attr in models.PFIF_13_NOTE_ATTRS: if self.request.get(attr): if not p.notes: n = models.Note() n.note_record_id = '%s/note.%s' % (namespace, unique_id) n.author_name = message.source_phone_number n.source_date = convert_datetime_to_rfc3339(message.message_timestamp) n.text = "raw message text received : " + message.message p.notes.append(n) setattr(p.notes[0], attr, self.request.get(attr)) logging.debug('###### Here') message.status_timestamp = datetime.datetime.now() errorparsing = False if self.request.get('parseable').lower() == 'false': message.status = 'UNPARSEABLE' errorparsing = True else: upload_to_personfinder(p) message.status = 'SENT' logging.debug('Person: %s' % repr(p)) logging.debug('Message: %s' % message) message.put() atomic_add_to_counter(counter_name_new, -1) return errorparsing
def get(self): try: # TODO(amantri): Switch to post source = self.request.get('source') message = self.request.get('message') time = self.request.get('time') except (TypeError, ValueError): self.response.out.write("<html><body><p>Invalid inputs</p></body></html>") return # try to upload to person finder, if it fails (i.e. has no #) try: logging.debug('trying to use formatted parsing method') person = parse_formatted_message(time, source, message) upload_to_personfinder(person) except: logging.debug('falling back on crowdsource parsing method') message = self.create_task_for_crowdsource(time, source, message) message.put() self.response.out.write("<html><body><p>%s</p></body></html>" % message)
#!/usr/bin/env python import datetime, time, calendar import vendor.rfc3339 from communication import send_to_server, upload_to_personfinder on_tropo = False now = vendor.rfc3339.now() time = vendor.rfc3339.datetimetostr(now) source = currentCall.callerID if on_tropo else "14154885884" message = currentCall.initialText if on_tropo else "koff#jon#brown shirt#alive" if "#" not in message: # Send freeform message to server for crowdsource uploading send_to_server(time, source, message) else: # Put code here to upload directly to PersonFinder upload_to_personfinder(message)