Open ssttkkl opened 6 months ago
KOOK对mention是直接塞在KMarkdown里,目前适配器未进行处理,一方面用户使用起来比较难受,另一方面各种跨平台插件也没法对mention进行建模。
对于mention消息的处理,有以下几种备选方案:
1、把消息中的mention都单独提出来,比如原始消息是[KMarkdown: /command (met)123(met)]的话,就变成[KMarkdown: /command (met)123(met)][Mention: 123]。(问题:用户不只要提取mention,还需要除mention以外剩下的文本) 2、用正则粗暴地匹配(met)123(met),然后分割KMarkdown文本串。(问题:遇到嵌套在其他元素内的mention,这样粗暴分割会导致剩下的KMarkdown不再合法。但是用户发送指令的消息一般不会是太复杂的KMarkdown消息,机器人处理KMarkdown的场景本来就少) 3、对KMarkdown进行解析。具体怎么做、做成什么样都不明确。
机器人处理KMarkdown的场景本来就少,那么是否可以把所有接收的KMarkdown消息都转成纯文本消息(使用KMarkdown消息的raw_content属性,即显示文本),在此之上再处理mention消息。 如果插件确实需要处理KMarkdown,可以直接从事件属性里拿。
是否可以把所有接收的KMarkdown消息都转成纯文本消息(使用KMarkdown消息的raw_content属性,即显示文本)
KOOK对mention是直接塞在KMarkdown里,目前适配器未进行处理,一方面用户使用起来比较难受,另一方面各种跨平台插件也没法对mention进行建模。
对于mention消息的处理,有以下几种备选方案:
1、把消息中的mention都单独提出来,比如原始消息是[KMarkdown: /command (met)123(met)]的话,就变成[KMarkdown: /command (met)123(met)][Mention: 123]。(问题:用户不只要提取mention,还需要除mention以外剩下的文本) 2、用正则粗暴地匹配(met)123(met),然后分割KMarkdown文本串。(问题:遇到嵌套在其他元素内的mention,这样粗暴分割会导致剩下的KMarkdown不再合法。但是用户发送指令的消息一般不会是太复杂的KMarkdown消息,机器人处理KMarkdown的场景本来就少) 3、对KMarkdown进行解析。具体怎么做、做成什么样都不明确。