Skip to content
This repository has been archived by the owner on Jan 12, 2024. It is now read-only.

整合帮助菜单 #9

Closed
satouriko opened this issue Jan 9, 2019 · 2 comments
Closed

整合帮助菜单 #9

satouriko opened this issue Jan 9, 2019 · 2 comments
Labels

Comments

@satouriko
Copy link
Contributor

网关的初心是可以让 bot 开发者用同一套 API 来开发打通多个平台的 bot,同时也可以在每个平台只申请一个账号的情况下运行一系列 bot 应用。针对后面这类问题,现在世界上很多 bot 都是不止拥有某一方面的功能的,例如妮可除了作为 LoveLive! 查卡器(核心功能)以外还有皮一下呀、复读呀之类的功能。开发者们大多都是通过程序内部抽象来解耦合,总的来讲是一个功能强大(甚至支持插件)的程序。而通过网关层面对协议的描述,可以让应用的不同功能模块用不同语言编写,完全独立地运行在不同的服务器上。

在这里面命名空间冲突问题是一个蛮影响体验也很令人头疼的问题。例如命令 /ping,用于测试程序是否在线。如果每个下面的程序都独立响应 ping,那 ping 一次会产生一大堆消息,体验很不好。但是又不能让用户自己加参数决定 ping 哪个程序,因为用户根本不应该关心你是分为几个程序。help 同理(可能比 ping 更加有意义一些,如果说 ping 一般人不会用到的话,help 还是很有用的)。

一种解决的办法是,由一个程序来整合 ping 命令,当它收到用户的 ping 请求时,就向其他程序也发出 ping。然后由它来收集结果统一反馈给用户。此时有个问题是,不是所有平台都支持 消息编辑,在不支持消息编辑的平台上,等待多久合适呢,等待久了会让用户觉得你是不是凉了,等待时间短又可能会没能收集到所有的 ping 响应。

另一种方法是直接返回一个网页链接,用户打开网页,这样就没问题了。但是直接返回链接其实体验也不是特别好,特别是在用 QQ 这种带一个初始化缓慢经常网页打不开了的内置浏览器的 IM 的时候。

@satouriko
Copy link
Contributor Author

但是总之,用户看到的帮助菜单应当是条理清晰的,而不是杂乱无章的。之前看到过一些比较好的 bot,或者说功能比较强大的 bot,它们有的是 /help 以后会出来一个 一级菜单,然后再 /help command 或者 /command help 来查看更详细的 二级菜单。有的是图文帮助,会给你发一张图片,上面有的还是分步介绍或者命令有些选项啊什么的:对于这种很复杂的命令,通过一张图片良好的排版,清晰的主次就可以讲的很清楚。

这里讨论应当设计一种格式来收集不同 bot 程序的帮助信息,并通过上面所说的,或直接消息返回或网页的形式来展示。不同 bot 程序的需要描述的东西可能会很不一样。

@satouriko
Copy link
Contributor Author

网关来做这个“通用帮助菜单”的话,响应时间和响应内容实时性之间的矛盾难以调和,不如还是交给用户自己维护

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

1 participant