def handle(self, *args, **kwargs): for event in HotlineEvent.objects.all(): print(event.identity) event.operator = operator_from_mali_number(event.identity) event.save() print("End of Updated.")
def handle_sms_call(payload, event_type=None): identity = normalize_phone_number(payload.get('from').strip()) if not is_valid_number(identity) or number_is_blacklisted(identity): return message = payload.get('message').strip() if not len(message): message = None if event_type is None: event_type = event_type_from_message(message) phone_number = payload.get('phone_number') timestamp = payload.get('timestamp') received_on = datetime_from_timestamp(timestamp) operator = operator_from_mali_number(identity) try: existing = HotlineEvent.objects.get(identity=identity, processed=False) except HotlineEvent.DoesNotExist: existing = None # if same number calls again before previous request has been treated # we just update the date of the event. if existing: print(existing) existing.received_on = received_on existing.save() return try: event = HotlineEvent.objects.create( identity=identity, event_type=event_type, hotline_number=phone_number, received_on=received_on, sms_message=message, operator=operator) except: return if event.event_type == HotlineEvent.TYPE_SMS_USHAHIDI: event.processed = False make_ushahidi_request(event) send_notification(event) return
def handle_sms_call(payload, event_type=None): identity = normalize_phone_number(payload.get('from').strip()) if not is_valid_number(identity) or number_is_blacklisted(identity): return message = payload.get('message').strip() if not len(message): message = None if event_type is None: event_type = event_type_from_message(message) phone_number = payload.get('phone_number') timestamp = payload.get('timestamp') received_on = datetime_from_timestamp(timestamp) operator = operator_from_mali_number(identity) try: existing = HotlineEvent.objects.get(identity=identity, processed=False) except HotlineEvent.DoesNotExist: existing = None # if same number calls again before previous request has been treated # we just update the date of the event. if existing: print(existing) existing.received_on = received_on existing.save() return try: event = HotlineEvent.objects.create(identity=identity, event_type=event_type, hotline_number=phone_number, received_on=received_on, sms_message=message, operator=operator) except: return if event.event_type == HotlineEvent.TYPE_SMS_USHAHIDI: event.processed = False make_ushahidi_request(event) send_notification(event) return
def reply_with_phone_number(payload): end_user_phone = payload.get('from') if end_user_phone is not None: return get_phone_number_for(operator_from_mali_number(end_user_phone)) return None
# we don't store outgoing messages for now return def handle_device_status_change(payload): # we don't track device changes for now return def check_meta_data(payload): # we don't track device changes for now return def reply_with_phone_number(payload): end_user_phone = payload.get('from') if end_user_phone is not None: return get_phone_number_for(operator_from_mali_number(end_user_phone)) return None def get_phone_number_for(operator): return random.choice(INCOMING_NUMBERS_BY_OPERATOR.get(operator, [None])) or None for number in settings.FONDA_INCOMING_NUMBERS: operator = operator_from_mali_number(number) if not operator in INCOMING_NUMBERS_BY_OPERATOR.keys(): INCOMING_NUMBERS_BY_OPERATOR.update({operator: []}) INCOMING_NUMBERS_BY_OPERATOR[operator].append(number) INCOMING_NUMBERS_WITH_OPERATOR.update({number: operator})
def reply_with_phone_number(payload): end_user_phone = payload.get('from') if end_user_phone is not None: return get_phone_number_for(operator_from_mali_number(end_user_phone)) return None
def handle_device_status_change(payload): # we don't track device changes for now return def check_meta_data(payload): # we don't track device changes for now return def reply_with_phone_number(payload): end_user_phone = payload.get('from') if end_user_phone is not None: return get_phone_number_for(operator_from_mali_number(end_user_phone)) return None def get_phone_number_for(operator): return random.choice(INCOMING_NUMBERS_BY_OPERATOR.get(operator, [None])) or None for number in settings.FONDA_INCOMING_NUMBERS: operator = operator_from_mali_number(number) if not operator in INCOMING_NUMBERS_BY_OPERATOR.keys(): INCOMING_NUMBERS_BY_OPERATOR.update({operator: []}) INCOMING_NUMBERS_BY_OPERATOR[operator].append(number) INCOMING_NUMBERS_WITH_OPERATOR.update({number: operator})