def id_recieved(): res = Response() digits = request.form['Digits'] logging.info('Digits: "%s"', digits) if not re.match(r'\d{%d}' % ID_NUM_DIGITS, digits): return res.say('Invalid eye d number').hangup() if digits == ''.join(map(str, range(1, ID_NUM_DIGITS+1))): return res.play( '/static/Gorillaz%20-%20Film%20Music%20(Official%20Visual).mp3' ).hangup() payphone_id = digits[:ID_NUM_DIGITS - 1] + '%' + digits[-1] logging.info('Looking for payphone with id like: "%s"', payphone_id) payphones = payphone_client.by_cabinet_id(payphone_id) if not payphones: return res.say('Payphone could not be found').hangup() if len(payphones) > 1: return select_from_payphones(payphones) else: properties = payphones[0]['properties'] message = 'Payphone found in {}'.format(properties['SSC_Name']) res.say(message) logging.info(message) return do_for_payphone(res, format_lat_lon(payphones[0]['properties']))
def id_recieved_response(digits): res = Response() logging.info('Digits: "%s"', digits) if not re.match(r'\d{%d}' % ID_NUM_DIGITS, digits): return res.say('Invalid eye d number').hangup() if digits == ''.join(map(str, range(1, ID_NUM_DIGITS + 1))): return res.play( '/static/Gorillaz%20-%20Film%20Music%20(Official%20Visual).mp3' ).hangup() # insert a wildcard where the punctuation is in the phone id payphone_id = digits[:-1] + '%' + digits[-1] logging.info('Looking for payphone with id like: "%s"', payphone_id) payphones = payphone_client.by_cabinet_id(payphone_id) payphones = [ CaseInsensitiveDict(payphone['properties']) for payphone in payphones ] if not payphones: return res.say('Payphone could not be found').hangup() if len(payphones) > 1: return select_from_payphones(payphones) else: properties = CaseInsensitiveDict(payphones[0]) message = 'Payphone found in {}'.format(properties['SSC_Name']) res.say(message) logging.info(message) return do_for_payphone(res, format_lat_lon(properties))
def select_payphone_suburb_response(idx, payphones): res = Response() try: payphone = payphones[idx - 1] # we 1 index for useability except IndexError: return res.say('Invalid suburb selection').hangup() logging.info('Selected payphone at latlon %s', payphone) res.say('Selected payphone') return do_for_payphone(res, payphone)
def select_payphone_suburb(): res = Response() idx = int(request.form['Digits']) payphones = json.loads(request.args['phones']) try: payphone = payphones[idx - 1] # we 1 index for useability except IndexError: return res.say('Invalid suburb selection').hangup() logging.info('Selected payphone at latlon %s', payphone) res.say('Selected payphone') return do_for_payphone(res, payphone)
def payphone_found(): res = Response() digits = request.form['Digits'] if digits not in {'1', '2'}: return res.say('Invalid input').hangup() mode = {'1': 'walking', '2': 'transit'}[digits] from_ = request.args['latlon'] to = ADDRESSTO departure_time = datetime.now() logging.info( 'Travelling from %s to "%s" at %s using %s', from_, to, departure_time, mode ) directions_result = gmaps.directions( from_, to, mode=mode, departure_time=departure_time ) if not directions_result: return res.say('No routes could be found').hangup() directions_result = directions_result[0] for leg in directions_result['legs']: for step in leg['steps']: if step['travel_mode'] == 'TRANSIT': instruction = parse_transit_step(step) else: instruction = parse_instruction(step['html_instructions']) res.say(instruction) res.pause(length=0.5) res.say("End of instructions") return res
def payphone_found_response(digits, from_): res = Response() if digits not in {'1', '2'}: return res.say('Invalid input').hangup() mode = {'1': 'walking', '2': 'transit'}[digits] to = ADDRESSTO departure_time = datetime.now() logging.info('Travelling from %s to "%s" at %s using %s', from_, to, departure_time, mode) directions_result = gmaps.directions(from_, to, mode=mode, departure_time=departure_time) if not directions_result: return res.say('No routes could be found').hangup() directions_result = directions_result[0] for leg in directions_result['legs']: for step in leg['steps']: if step['travel_mode'] == 'TRANSIT': instruction = parse_transit_step(step) else: instruction = parse_instruction(step['html_instructions']) res.say(instruction) res.pause(length=1) res.say("End of instructions") action = params_and_url_for('possibly_repeat', { 'latlon': from_, 'Digits': digits }) with res.gather(numDigits=1, action=action) as gat: gat.say('Enter 1 to repeat instructions, or hang up.', ) return res