#javascript #rasa
Вопрос:
Когда отображаются эти кнопки, я нажимаю одну из них, и вся полезная нагрузка становится ответом
for i in range(len(RESULTS)):
if RESULTS[i]['parent'] == 0:
cat_id = RESULTS[i]['id']
name = RESULTS[i]["name"]
payload = "/searchallcat{"cat_id":"" str(cat_id) "", "cat_name":"" name ""}"
buttons.append({"title": "{}".format(name.title()), "payload": payload})
Я использую этот пользовательский интерфейс чат-бота:
https://github.com/scalableminds/chatroom
"fyRg": [function (require, module, exports)
{
"use strict";
Object.defineProperty(exports, "__esModule",
{
value: !0
}), exports.default = exports.MessageTime = void 0;
var e = i(require("react")),
t = u(require("react-markdown")),
r = u(require("remark-breaks")),
a = require("date-fns"),
n = u(require("classnames")),
l = require("./utils");
function u(e)
{
return e amp;amp; e.__esModule ? e :
{
default: e
}
}
function i(e)
{
if (e amp;amp; e.__esModule) return e;
var t = {};
if (null != e)
for (var r in e)
if (Object.prototype.hasOwnProperty.call(e, r))
{
var a = Object.defineProperty amp;amp; Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(e, r) :
{};
a.get || a.set ? Object.defineProperty(t, r, a) : t[r] = e[r]
} return t.default = e, t
}
var s = function (t)
{
var r = t.time,
l = t.isBot;
if (0 === r) return null;
var u = Math.min(Date.now(), r),
i = new Date(u);
return e.default.createElement("li",
{
className: (0, n.default)("time", l ? "left" : "right"),
title: i.toISOString()
}, (0, a.formatDistance)(i, Date.now()))
};
exports.MessageTime = s;
var c = function ()
{
return "SpeechSynthesisUtterance" in window
},
o = function (e, t)
{
var r = window.speechSynthesis,
a = [];
a = r.getVoices();
var n = new SpeechSynthesisUtterance(e);
n.voice = a.find(function (e)
{
return e.lang === t
}), r.speak(n)
},
f = function (a)
{
var u = a.chat,
i = a.onButtonClick,
s = a.voiceLang,
f = void 0 === s ? null : s,
d = u.message,
p = "bot" === u.username;
switch ((0, e.useEffect)(function ()
{
p amp;amp; null != f amp;amp; "text" === d.type amp;amp; c() amp;amp; o(d.text, f)
}, []), d.type)
{
case "button":
return e.default.createElement("ul",
{
className: "chat-buttons"
}, d.buttons.map(function (a)
{
var u = a.payload,
s = a.title,
c = a.selected;
return e.default.createElement("li",
{
className: (0, n.default)("chat-button",
{
"chat-button-selected": c,
"chat-button-disabled": !i
}),
key: u,
onClick: null != i ? function ()
{
return i(s, u)
} : l.noop
}, e.default.createElement(t.default,
{
source: s,
skipHtml: !1,
allowedTypses: ["root", "break"],
renderers:
{
paragraph: function (t)
{
var r = t.children;
return e.default.createElement("span", null, r)
}
},
plugins: [r.default]
}))
}));
case "image":
return e.default.createElement("li",
{
className: "chat ".concat(p ? "left" : "right", " chat-img")
}, e.default.createElement("img",
{
src: d.image,
alt: ""
}));
case "text":
return e.default.createElement("li",
{
className: (0, n.default)("chat", p ? "left" : "right")
}, e.default.createElement(t.default,
{
className: "text",
source: d.text,
skipHtml: !1,
allowedTypses: ["root", "break", "paragraph", "emphasis", "strong", "link", "list", "listItem", "image"],
renderers:
{
paragraph: function (t)
{
var r = t.children;
return e.default.createElement("span", null, r)
},
link: function (t)
{
var r = t.href,
a = t.children;
return e.default.createElement("a",
{
href: r,
target: "_blank"
}, a)
}
},
plugins: [r.default]
}));
default:
return null
}
},
d = f;
exports.default = d;
}
используя этот JavaScript, функция return возвращает имя кнопки и полезную нагрузку. Как я могу изменить сообщение, которое было передано пользователю, и отобразить только заголовок кнопки. Я застрял, мне нужна помощь, и заранее благодарю вас
Комментарии:
1. Добро пожаловать в SO. Ваш фрагмент завершен? И, пожалуйста, если вы можете использовать какой-нибудь форматер, потому что свернутый код трудно читать людям. Например, этот prettifyjs.net