Beispiel #1
0
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))
Beispiel #5
0
    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
Beispiel #6
0
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)
Beispiel #8
0
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))
Beispiel #9
0
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)
Beispiel #10
0
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)
Beispiel #11
0
 def test_build_empty_response(self):
     response = utils.build_response()
     self.assertEqual('HTTP/1.1 200 OK\n\n'.encode(), response)
Beispiel #12
0
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'))
Beispiel #14
0
    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)
Beispiel #15
0
    # 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()
Beispiel #16
0
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)
Beispiel #17
0
 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))
Beispiel #19
0
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.")
Beispiel #20
0
 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)
Beispiel #21
0
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)
Beispiel #22
0
 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)
Beispiel #23
0
def handle_pause():
    return utils.build_response(utils.build_audio_player_stop_response())
Beispiel #24
0
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()
Beispiel #25
0
# </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()
Beispiel #26
0
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())