koishijs / koishi

Cross-platform chatbot framework made with love
https://koishi.chat
MIT License
4.53k stars 246 forks source link

Feature: 派生式指令可以空格调用所以不在帮助中显示点 #1281

Closed KyoMiko closed 1 year ago

KyoMiko commented 1 year ago

Describe the problem related to the feature request

qq频道中的返回信息中如果出现了点分割的字符串,就会认定为url从而阻拦发送。如出现server.list,就会阻拦发送

Describe the solution you'd like

添加可选配置项,可以将help提示中的派生式指令的显示方式从server.list替换为server list,从而规避腾讯的检测

Describe alternatives you've considered

No response

Additional context

No response

ilharp commented 1 year ago

请参考 Koishi 论坛的接入教程: https://k.ilharp.cc/810/12 正确配置和接入 QQ。正确配置后,指令将能够正常发送。

KyoMiko commented 1 year ago

请参考 Koishi 论坛的接入教程: https://k.ilharp.cc/810/12 正确配置和接入 QQ。正确配置后,指令将能够正常发送。

指令能够正常发送,这里指的是help指令的返回,koishi的help命令中派生式指令的显示方式为aaa.bbb,这种格式会被qq频道判定为url从而阻止help指令返回。 通过修改默认别名可以让aaa -h的时候返回aaa bbb从而正常返回,但是aaa bbb -h会显示所有的别名,其中aaa.bbb就会阻止正常提示帮助信息

ilharp commented 1 year ago

请参考 Koishi 论坛的接入教程: k.ilharp.cc/810/12 正确配置和接入 QQ。正确配置后,指令将能够正常发送。

指令能够正常发送,这里指的是help指令的返回,koishi的help命令中派生式指令的显示方式为aaa.bbb,这种格式会被qq频道判定为url从而阻止help指令返回。 通过修改默认别名可以让aaa -h的时候返回aaa bbb从而正常返回,但是aaa bbb -h会显示所有的别名,其中aaa.bbb就会阻止正常提示帮助信息

请参考 Koishi 论坛的接入教程: https://k.ilharp.cc/810/12 正确配置和接入 QQ。正确配置后,指令将能够正常发送,不会被 QQ 频道判定为 URL,消息能够正常发出。

ilharp commented 1 year ago

我看到 这里 将子指令的点改成了空格。请问在子指令能够正常带点发送的情况下为何要进行这项更改?这是否会使用户在调用子指令的时候产生误区?

image

shigma commented 1 year ago

子指令也可以正常带空格发送,请问凭什么一定要带点?

ilharp commented 1 year ago

二者没有可用性上的区别;我的考虑点在于上图经过修改后,最后一行会变成

user locale  语言偏好

此时,用户需要输入的「指令」与用户不应输入的「指令介绍」中间只剩空格个数的区别,这可能会使用户产生迷惑,并产生歧义。

例如,如果插件注册了 roll.随机 作为指令,掷骰子 作为参数,那么这条指令的显示将会变成

roll 随机  掷骰子

用户将可能误以为 roll.随机.掷骰子 是应当调用的指令。

shigma commented 1 year ago
  1. 推荐使用空格分隔派生式指令,因此用户本来就不应该使用 roll.随机 的用法。
  2. 你所说的问题使用点依然存在,用户同样可以理解为 roll.随机 掷骰子 是要调用的指令。
  3. 使用空格更加符合程序员的习惯,对于普通用户更加方便 (空格按键远大于点,无论是在实体键盘还是手机上)。
  4. 使用空格更加适应 Discord 等平台的规范,对于自动注册为斜线指令的情况下,在帮助中显示空格有助于与平台行为统一。
shigma commented 1 year ago

我觉得如果要完全避免误解的话,文本是肯定不够的,需要引入图片发送(甚至图片也不能完全避免误解,不过我想会比文本好很多)。不过这就不是官方 help 插件所应当处理的范畴了。目前已经有部分社区插件提供了基于图片的 help 实现。

ilharp commented 1 year ago

很有道理,我将尝试其他的 help 实现,或者魔改 help 实现。