oftx
2024 年3 月 15 日 11:37
1
问题描述
对于 ctx.broadcast(channels?, content) 的 content 参数,如果字符串包含一对尖括号,那么尖括号内包含的内容会被省略。
我不知道这是 Telegram 的特性还是 Koishi 的问题。
示例
如果 content 的值为 <aaa> aaa
那么广播到 Telegram 的文本内容为 aaa
环境
System:
OS: Windows 10 10.0.20348
CPU: (4) x64 Intel(R) Xeon(R) Platinum 8255C CPU @ 2.50GHz
Binaries:
Node: 18.16.1
Yarn: 4.1.0
Koishi:
Core: 4.17.2
Console: 5.28.0
4 个赞
这是因为koishi把尖括号和尖括号的内容当做消息元素进行处理,而<aaa>
这个元素没有任何作用,它就消失了
只要从koishi导入h函数
import { h } from 'koishi'
然后把content用text方法包起来就可以了,像是这样
ctx.broadcast(channels, h.text(content))
这告诉koishi,content只是文本而已,并不包含消息元素
相关文档:
4 个赞
araea
2024 年3 月 17 日 04:20
4
切神,谢谢你!(真的很有帮助,一直以来我都是避开使用<>符号滴,之后终于可以快快乐乐地使用他们啦!爱你)
3 个赞
You could also escape them manually using <
as <
and >
as >
.
Cannot recall the name? Just repeat the premiere letters from less than
and greater than
.
2 个赞