模块里有什么
模块是自成一体的。它自带 Flows、存储数据和设置(按页面分组),整个打包内容只有一个总开关。
Flows
模块需要的每个 Flow,放在你自己决定的文件夹里。
存储字段
模块自己拥有的存储数据。不属于任何模块的 Flows 会单独保存它们的数据,两者互不混用。
设置
由安装服务器填写的内容,按页面分组:文本、数字、是或否、频道、身份组、成员、列表和定时。
一个开关
关闭模块会同时关闭其中的所有 Flow。
同一个 Flow,现在放进了模块里
每日一问
已启用保存触发器
更改定时,每天 09:00
获取存储值(get-storage-value)
从以下位置读取题库:{questions}
挑选下一条(array-at)
昨天那条之后的一条
发送消息(send-message)
把问题以嵌入消息发布到{config:channel}
创建子区(start-thread-from-message)
在该消息下开启一个子区
增加存储值(increment-storage-value)
将该问题计为已提问,写入{asked}
仅为示意,实际界面可能有所不同
安装后,用起来像个应用
安装你模块的人不会进入 Flow 编辑器,而是看到一个应用页面:功能概览、包含你配置字段的设置标签页,以及包含你的指南和常见问题的帮助标签页。
模块的功能会根据它的 Flows 自动为你列出,然后你可以用自己的话重写。每项设置的帮助都藏在旁边的问号后面。Flow 编辑器、存储数据和运行历史则放在高级标签页里。
开发者在概览、指南和常见问题里写的内容始终是纯文本:没有脚本,也没有伪装成别的东西的链接。
功能
每日发布
在 09:00 发布问题,并为答案开启子区。
建议问题
成员提交问题,团队审核后加入题库。
指南
充实你的题库
如何录入最初的三十个问题,以及题库用完时会发生什么。
常见问题
成员可以建议问题吗?
可以。把建议审核身份组授予你的团队,他们会在问题被使用前看到每条建议。
仅为示意,实际界面可能有所不同
从设计上就便于移植
模块绝不会携带你的频道、身份组或成员 ID。凡是属于某个服务器的内容都来自设置,所以每个安装该模块的服务器都能选择自己的。正因如此,在别处安装才能正常工作。
频道和身份组来自设置
步骤从不通过 ID 指向某个频道或身份组,而是指向一项设置,由安装服务器选择填入什么。
每个服务器的选择只属于该服务器
服务器选定的值保存在模块旁边,而不是模块内部,所以更新永远不会覆盖它们。
版本发布前会拦下遗留内容
新版本会检查是否含有你自己服务器的 ID,发现的内容会连同所在的 Flow、步骤和字段一起指出。
每次安装都清楚自己的版本
服务器会一直保持它安装的版本,直到它自己决定更新。
安装、更新、翻译
模块只需一步就能安装到另一个服务器,设置向导会逐步引导填写必填字段。你发布新版本时,所有安装都会收到通知。
已安装的模块会告诉运行它的服务器当前状况:需要设置、机器人缺少权限、某处持续失败,或一切正常。
更新
更新会以带版本号的“有可用更新”标签出现。可以逐个应用,也可以用“全部更新”。
你自己的修改
你自己修改过的模块不会被“全部更新”包含,并会先询问你,因为更新会替换其中的 Flows。你当前的版本会保留 30 天,方便你回退。
一种主语言
你的模块有一种主语言。首次发布时选定,一旦存在翻译就不能再更改。你可以手动把它翻译成 28 种受支持的语言。
机器翻译
机器翻译需要主动开启,且只生成德语。使用过机器翻译的地方,应用会告知阅读者部分内容由 AI 翻译,开发者尚未核对措辞。
翻译何时生效
翻译修正会在安装时和版本更新时送达已安装的模块,绝不会追溯生效。
模块常见问题
独立 Flow 直接放在你服务器的自定义命令里,只属于你。模块则把 Flows、存储数据和设置打包成一个整体,拥有单一开关、专属的设置页面和自己的帮助。任何想安装到其他服务器或交给别人的内容,都必须是模块。