def masstext(request): """The core (and currently only) view. Takes a POST from twilio and returns the sms commands. @request The HttpRequest """ if request.method == 'GET': return HttpResponse("You don't get how this works, do you?") if request.method == 'POST': number = request.POST['From'] user = PhoneNumber.objects.get(number=number).owner new_numbers = PhoneNumber.objects.get_reply_numbers(number) body = request.POST['Body'] return build_response(user, new_numbers, body)
def get_welcome_response(session): """ Welcome the user to my python skill """ card_title = "Welcome" speech_output = "What would you like me to do? " # If the user either does not reply to the welcome message or says something # that is not understood, they will be prompted again with this text. reprompt_text = "I'm still waiting for your instructions." session_attributes = session.get('attributes', {}) speechlet_response = build_speechlet_response( card_title, speech_output, reprompt_text ) return build_response(session_attributes, speechlet_response)
def search_results(intent, session): """ Search GitHub for the intent's query slot """ query = intent['slots']['query']['value'] results = search_repositories(query) card_title = "Search Results for " + query if results['items']: top_repo = results['items'][0] speech_output_fmt = "I found {0} results. The top hit is {1} by {2}. " speech_output = speech_output_fmt.format(results['total_count'], top_repo['name'], top_repo['owner']['login']) else: speech_output = "I couldn't find any repositories matching " + query speechlet_response = build_speechlet_response(card_title, speech_output) return build_response(session.get('attributes', {}), speechlet_response)
def on_intent(intent_request, session_attributes): # Called when the user specifies an intent for this skill print("Intent Request Name: " + intent_request['intent']['name']) intent_name = intent_request['intent']['name'] def call_url(path): requests.get(env_url + path, auth=HTTPBasicAuth(env_user, env_pwd), verify=False) # Dispatch to your skill's intent handlers if intent_name == "firstBundesliga": call_url('/soccerTable/1') elif intent_name == "secondBundesliga": call_url('/soccerTable/2') elif intent_name == "currentWeather": call_url('/currentWeather') elif intent_name == "currentSolar": call_url('/currentSolar') elif intent_name == "currentTime": call_url('/currentTime') elif intent_name == "soccerMatchesFirst": call_url('/soccerMatches/1') elif intent_name == "soccerMatchesSecond": call_url('/soccerMatches/2') elif intent_name == "picOfTheDay": call_url('/picOfTheDay') elif intent_name == "AMAZON.HelpIntent": return get_welcome_response() elif intent_name == "AMAZON.CancelIntent" or intent_name == "AMAZON.StopIntent": return end_session() else: raise ValueError("Invalid intent") return utils.build_response({}, utils.build_speech_response( random.choice(utils.response_comments), True))
def executeCommand(self, request, context): blueprint_id = utils.get_blueprint_id(request) self.logger.info( "{} - Received executeCommand request".format(blueprint_id)) if os.environ.get('CE_DEBUG', 'false') == "true": self.logger.info(request) log_results = [] payload_result = {} handler = CommandExecutorHandler(request) payload_result = handler.execute_command(request, log_results) if payload_result["cds_return_code"] != 0: self.logger.info("{} - Failed to executeCommand. {}".format( blueprint_id, log_results)) else: self.logger.info( "{} - Execution finished successfully.".format(blueprint_id)) ret = utils.build_response(request, log_results, payload_result, payload_result["cds_return_code"] == 0) self.logger.info("Payload returned %s" % payload_result) return ret
def delete_note(request): if request.startswith('POST'): request = request.replace('\r', '') # Remove caracteres indesejados # Cabeçalho e corpo estão sempre separados por duas quebras de linha partes = request.split('\n\n') corpo = partes[1] print(corpo) params = {} # Preencha o dicionário params com as informações do corpo da requisição # O dicionário conterá dois valores, o título e a descrição. # Posteriormente pode ser interessante criar uma função que recebe a # requisição e devolve os parâmetros para desacoplar esta lógica. # Dica: use o método split da string e a função unquote_plus for chave_valor in corpo.split('&'): print(chave_valor) split_chave_valor = chave_valor.split('=') split_novo1 = urllib.parse.unquote_plus(split_chave_valor[0]) split_novo2 = urllib.parse.unquote_plus(split_chave_valor[1]) params[split_novo1] = split_novo2 remove_from_json(int(params['id']), "notes.json") return build_response(code=303, reason='See Other', headers='Location: /')
def insert_lead_dialogflow(): try: json = request.json LOG.info("Nuevo lead recibido: ", json) queryResults = json["queryResult"] params = queryResults["parameters"] titulo = params["titulo"] page_name = params["page_name"] page_name = page_name.encode('ascii', 'ignore') page_name = str(page_name) page_name = match_regex(page_name, PAGE_NAME_REGEX) if page_name is not None and titulo is not None and page_name and titulo: auth = request.headers[AUTHORIZATION] if auth and auth == API_KEY: database = get_database(page_name[0].lower()) odoo_compound = compound_json_values(json, COMPOUND_FILE) odoo_json = transform_odoo_json(params, MAPPINGS_FILE) extra_values = list() extra_values.append((TYPE, TYPE_VALUE)) append_values_json(extra_values, json) if len(page_name) > 1: del page_name[0] for v in page_name: append_values(v, odoo_json) odoo_insert(database, odoo_json) print(odoo_json) else: abort(401) else: LOG.ERROR( "El page_name es invalido o falta el campo TITULO en el json") abort(401) except Exception as e: LOG.error("Exception al intentar insertar un lead " + str(e)) abort(400) return build_response('Success', 200)
def index(request): request = request.replace('\r', '') # Remove caracteres indesejados # Cabeçalho e corpo estão sempre separados por duas quebras de linha partes = request.split('\n\n') try: corpo = partes[1] final = partes[-1] selecionar_str = final[-1] except: selecionar_str = "0" if selecionar_str == "1": id_corpo = corpo.split("&") id_init = id_corpo[0].split("=") id_corpo_str = id_init[1] id_corpo_int = int(id_corpo_str) note_template = load_template('components/update_note.html') note_template2 = load_template('components/note.html') dados = all_data("data/banco_notes") dados_mod = dados for index, item in enumerate(dados): if item.id == id_corpo_int: id_dados = item.id title_dados = item.title content_dados = item.content dados_mod.remove(item) notes_li = [ note_template.format(id=id_dados, title=title_dados, details=content_dados) ] notes_li2 = [ note_template2.format( title=dados.title, details=dados.content, id=dados.id, ) for dados in dados_mod ] notes_total = notes_li + notes_li2 notes = '\n'.join(notes_total) return build_response(load_template('index.html').format(notes=notes)) elif selecionar_str == "2": request = request.replace('\r', '') partes = request.split('\n\n') corpo = partes[1] id_corpo = corpo.split("&") id_init = id_corpo[0].split("=") id_corpo_str = id_init[1] delete_Entry(id_corpo_str, "data/banco_notes") note_template = load_template('components/note.html') notes_li = [ note_template.format( title=dados.title, details=dados.content, id=dados.id, ) for dados in all_data("data/banco_notes") ] notes = '\n'.join(notes_li) return build_response(code=303, reason='See Other', headers='Location: /') elif selecionar_str == "3": request = request.replace('\r', '') # Remove caracteres indesejados # Cabeçalho e corpo estão sempre separados por duas quebras de linha partes = request.split('\n\n') corpo = partes[1] params_1 = {} for chave_valor in corpo.split('&'): half = chave_valor.split("=") chave = urllib.parse.unquote_plus(half[0], encoding='utf-8', errors='replace') valor = urllib.parse.unquote_plus(half[1], encoding='utf-8', errors='replace') params_1[chave] = valor params = dict(params_1) del params["selecionar"] update_Entry(params, "data/banco_notes") return build_response(code=303, reason='See Other', headers='Location: /') # A string de request sempre começa com o tipo da requisição (ex: GET, POST) else: if request.startswith('POST'): request = request.replace('\r', '') # Remove caracteres indesejados # Cabeçalho e corpo estão sempre separados por duas quebras de linha partes = request.split('\n\n') corpo = partes[1] params = {} for chave_valor in corpo.split('&'): half = chave_valor.split("=") chave = urllib.parse.unquote_plus(half[0], encoding='utf-8', errors='replace') valor = urllib.parse.unquote_plus(half[1], encoding='utf-8', errors='replace') params[chave] = valor add_Entry(params, "data/banco_notes") return build_response(code=303, reason='See Other', headers='Location: /') elif request.startswith('GET'): note_template = load_template('components/note.html') notes_li = [ note_template.format( title=dados.title, details=dados.content, id=dados.id, ) for dados in all_data("data/banco_notes") ] notes = '\n'.join(notes_li) return build_response( load_template('index.html').format(notes=notes))
def global_exception_handler(handler_input, exception): logger.warning('handler exception', exc_info=exception) locale = handler_input.request_envelope.request.locale message = content.dead_end_message(locale) return utils.build_response(handler_input, message)
def help_intent_handler(handler_input): locale = handler_input.request_envelope.request.locale message = content.help_message(locale) return utils.build_response(handler_input, message)
def test_build_empty_response(self): response = utils.build_response() self.assertEqual('HTTP/1.1 200 OK\n\n'.encode(), response)
def handle_irrelevant_audio_intent(): speech_output = speech.IRRELEVANT_AUDIO_INTENT return utils.build_response( utils.build_speechlet_response(output=speech_output, reprompt_text=None, should_end_session=True))
def error_page(request): return build_response(load_template('error.html'))
f'Servidor escutando em (ctrl+click): http://{SERVER_HOST}:{SERVER_PORT}') while True: client_connection, client_address = server_socket.accept() request = client_connection.recv(1024).decode() # print(request) extracted_route = extract_route(request) route = extracted_route[0] note_id = extracted_route[1] filepath = CUR_DIR / route if filepath.is_file(): extension = os.path.splitext(filepath)[1] if extension == '.css': response = build_response(body=read_file(filepath), headers='Content-Type: text/css') elif extension == '.js': response = build_response(body=read_file(filepath), headers='Content-Type: text/javascript') else: response = build_response() + read_file(filepath) elif route == '': response = index(request) else: response = build_response(body='404 Not Found', code=404, reason='Not Found') client_connection.sendall(response)
# O .decode() deixa a requisicao possivel de entender # é o cabeçalho (header) da requisição ou resposta request = client_connection.recv(1024).decode() print(request) route = extract_route(request) filepath = CUR_DIR / route print("\n route: ", route) print("filepath: ", filepath, "\n") # se GET /templates/assets/css/getit.css HTTP/1.1 if filepath.is_file(): response = build_response() + read_file(filepath) # se GET / HTTP/1.1 ou POST / HTTP/1.1 elif route == '': response = index(request) else: response = build_response() #serve para devolver a pagina html #envia as respostas # O código 200 é um dos possíveis códigos de status resposta. #Ele diz para o navegador que a requisição foi processada com sucesso. client_connection.sendall(response) client_connection.close()
def handle_get_passage(intent): maybe_response = ensure_date_and_service_slots_filled(intent) if maybe_response: return maybe_response date, maybe_response = ensure_date_is_a_sunday( intent, future_days_go_back_year_threshold=config.FUTURE_DAYS_GO_BACK_YEAR_THRESHOLD_PASSAGES) if maybe_response: return maybe_response service, maybe_response = ensure_service_valid(intent) if maybe_response: return maybe_response reading_data = passages.get_passage(date, service) if not reading_data: speechlet_response = utils.build_speechlet_response(output=speech.NO_BIBLE_PASSAGE, reprompt_text=None, should_end_session=True) return utils.build_response(speechlet_response) book = reading_data["book"] start_chapter = str(reading_data["start"]["chapter"]) start_verse = str(reading_data["start"]["verse"]) end_chapter = str(reading_data["end"]["chapter"]) end_verse = str(reading_data["end"]["verse"]) humanised_passage = utils.humanise_passage(book, start_chapter, start_verse, end_chapter, end_verse) passage_text = bible.get_bible_text(book, start_chapter, start_verse, end_chapter, end_verse) get_read_passage_directives = [{"type": "Dialog.ElicitSlot", "slotToElicit": "ReadPassage"}] if "value" not in intent["slots"]["ReadPassage"]: should_end_session = False speechlet_response = utils.build_speechlet_response( card_title=cards.get_passage_title(date, service), card_text=cards.GET_PASSAGE_CONTENT.format( passage_text=passage_text, passage=humanised_passage, bible_translation=config.BIBLE_TRANSLATION ), output=speech.BIBLE_PASSAGE_RESPONSE.format(bible_passage=humanised_passage), reprompt_text=None, should_end_session=should_end_session, directives=get_read_passage_directives) return utils.build_response(speechlet_response) try: to_read_passage = intent["slots"]["ReadPassage"]["resolutions"]["resolutionsPerAuthority"][ 0]["values"][0]["value"]["id"] == "YES" except KeyError: speech_output = speech.PLEASE_REPEAT_GENERAL speechlet_response = utils.build_speechlet_response(output=speech_output, reprompt_text=None, should_end_session=False, directives=get_read_passage_directives) return utils.build_response(speechlet_response) speech_output = ( speech.READ_RESPONSE.format( passage_text=bible.remove_square_bracketed_verse_numbers(passage_text)) if to_read_passage else speech.DO_NOT_READ_RESPONSE ) speechlet_response = utils.build_speechlet_response(output=speech_output, reprompt_text=None, should_end_session=True) return utils.build_response(speechlet_response)
def test_build_response_with_code(self): response = utils.build_response(code=404, reason='Not Found') self.assertEqual('HTTP/1.1 404 Not Found\n\n'.encode(), response)
def get_welcome_response(session_attributes): return utils.build_response({}, utils.build_speech_response( random.choice(utils.response_comments), False))
def default_message(event, context): """ Send back error when unrecognized WebSocket action is received. """ logger.info("Unrecognized WebSocket action received.") return build_response(400, "Unrecognized WebSocket action.")
def test_build_response_with_body_kwarg(self): response = utils.build_response(body='body of the response') self.assertEqual('HTTP/1.1 200 OK\n\nbody of the response'.encode(), response)
def delete_clients(): id = request.form.get(ID_KEY) if id is not None and id: id_int = int(id) return delete_client(id_int) return build_response("El cliente seleccionado no pudo ser borrado",400)
def test_build_response_with_code_and_header(self): response = utils.build_response(code=302, reason='See Other', headers='Location /') self.assertEqual('HTTP/1.1 302 See Other\nLocation /\n\n'.encode(), response)
def handle_pause(): return utils.build_response(utils.build_audio_player_stop_response())
server_socket.bind((SERVER_HOST, SERVER_PORT)) server_socket.listen() print( f'Servidor escutando em (ctrl+click): http://{SERVER_HOST}:{SERVER_PORT}') while True: client_connection, client_address = server_socket.accept() request = client_connection.recv(1024).decode() print(request) route = extract_route(request) filepath = CUR_DIR / route if filepath.is_file(): response = build_response() + read_file(filepath) print('is file') elif route == '': # tirar o build response e colocar dentro da funcao print('is home') response = index(request) else: print('is else') response = build_response(body='404 Not Found', code=404, reason='Not Found') client_connection.sendall(response) client_connection.close() server_socket.close()
# </body> # </html> # ''' server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) server_socket.bind((SERVER_HOST, SERVER_PORT)) server_socket.listen() print( f'Servidor escutando em (ctrl+click): http://{SERVER_HOST}:{SERVER_PORT}') while True: client_connection, client_address = server_socket.accept() request = client_connection.recv(1024).decode() route = extract_route(request) filepath = CUR_DIR / route if filepath.is_file(): Respsota = build_response() + read_file(filepath) elif route == '': Resposta = index(request) else: Resposta = bytes() client_connection.sendall(Respostsa) client_connection.close() server_socket.close()
print(f'Servidor escutando em (ctrl+click): http://{SERVER_HOST}:{SERVER_PORT}') while True: # accept trava a execução do programa até que receba uma requisição client_connection, client_address = server_socket.accept() # indicamos que queremos ler no máximo 1024 bytes # resultado é um valor do tipo bytes # convertemos ele para uma string utilizando o decode() request = client_connection.recv(1024).decode() print(request) route = extract_route(request) filepath = CUR_DIR / route if filepath.is_file(): response = build_response(read_file(filepath)) elif route == '': response = index(request) elif route == 'deletar': response = delete_note(request) elif route.startswith('edit'): response = edit_note(request, int(route.split('/')[1])) else: response = build_response(load_template('404.html')) client_connection.sendall(response) # sem essas duas quebras de linha, o Hello World seria considerado parte do cabeçalho (header) # response = 'HTTP/1.1 200 OK\n\nHello World' # client_connection.sendall(RESPONSE_TEMPLATE.encode())