Exemplo n.º 1
0
def handle_dialog(res, req):
    user_id = get_user_id(req)

    if req.get('request', {}).get('original_utterance', '') == 'ping':
        res['response']['text'] = 'Всё работает!'
        return

    if req['session']['new']:
        user = sessionStorage[user_id] = {}
        DialogManager.hello(res, user, user_id)
    else:
        if user_id not in sessionStorage:
            sessionStorage[user_id] = {'state': State.HELLO}

        user = sessionStorage[user_id]
        tokens = req.get('request', {}).get('nlu', {}).get('tokens', ['Empty'])

        for words, states in COMMANDS:
            if any(word in tokens
                   for word in words) and user['state'] in states:
                COMMANDS[words, states]()(res, req, sessionStorage)
                UI.add_default_buttons(res, user)
                if 'text' in res.get('response', {}):
                    return

        DialogManager.wtf(res, req, sessionStorage)

    UI.add_default_buttons(res, user)