morny-book/command/info.md

122 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# /info
> > [subcommands...]
>
> 输出当前 Morny 的各种信息
`/info` 命令允许你可以查看当前的 Morny 的 Coeur 信息等等。这些信息包括但不限于 Morny Coeur 的版本,运行状态,或是一些内置资源的信息。
下面的表格列出了在 `/info` 命令中可以使用的子命令。向下翻阅还可以找到每个单独子命令的详细说明。
使用不带参数的 `/info` 将会默认使用子命令 <code>/info [runtime](#runtime)</code>
{.overview}
| <small>/..</small>subcommand | "Description." |
|--------------------------------|----------------|
| [**`version`**](#version) | 检查当前 Morny Coeur 版本信息。 |
| [**`runtime`**](#runtime) | 检查 Morny Coeur 的运行状态信息(包括了运行的版本资讯)。 |
| [**`stickers`**...](#stickers) | 列出或通过内部id检查在 Coeur 中内置使用的贴纸。 |
<style>
table.overview thead tr th {
text-decoration: underline;
}
</style>
---
## version
> also known as `v`
>
> 作为对旧版本的兼容,这个功能也可以直接通过 Morny 命令 `/version` 使用。
子命令 `version` 将会输出显示 Morny 的 Coeur 版本信息。
```text
version:
- Morny BEIPING
- 1.0.0-RC3
- git 8e28bbbc
core md5_hash:
- 211efe58924137e86ca4f9f83c6dce9e
coding timestamp:
- 1668764979000
- 2022-11-18 09:49:39:000 [UTC]
```
---
## runtime
> 作为对旧版本的兼容,这个功能也可以直接通过 Morny 命令 `/runtime` 使用。
>
> 使用不带参数的 `/info` 也会重定向到这个功能上来。
子命令 `runtime` 将会输出显示这个 Morny 实例的运行状态信息。
这些信息包含了运行 Morny 的宿主机环境相关的信息,可以利用它来监控 Morny 的运行状态。它也包含了<small>以一种压缩方式显示的[^1]</small>当前 Morny 的版本。
> 对于想要自己搭建 Morny Coeur 实例的读者,需要注意的是:**在默认的 Morny 版本中,这个命令没有鉴权!**。
>
> 这意味着所有可以访问 Morny bot 的用户都可以获得这些信息。它可能会包含你不希望向普通用户透露的关于宿主机环境的信息——它们或许会对你的机器造成安全问题的话。尽管可惜的是 official Morny Coeur 版本并未为这个命令添加鉴权,你可能需要自己更改代码并编译自己的 Coeur。
```text
system:
- 5a783b01b18e
- Linux (aarch64) 5.10.0-19-arm64
java runtime:
- BellSoft.OpenJDK 64-Bit Server VM
- 18.0.1.1+2
vm memory:
- 40 / 6004 MB
- 4 cores
coeur version:
- 1.0.0-RC3+git.8e28bbbc*BEIPING
- 211efe58924137e86ca4f9f83c6dce9e
- 2022-11-18 09:49:39:000 [UTC]
- [1668764979000]
continuous:
- 12d 15h 37min 23s 393ms
- [1093043393]
- 2023-02-11 16:46:51:263 [UTC]
- [1676134011263]
```
[^1]: 以压缩方式显示的版本信息即为像是 `1.0.0-RC3+git.8e28bbbc*BEIPING` 这样,将 *基础版本`1.0.0-RC3`**版本的 git commit 信息`git.8e28bbbc`**版本代号`beiping`* 使用符号连接融合为一行的显示方式。作为对比,在 [`version`](#version) 当中,这些每一个都会作为单独的一行信息列出。
---
## stickers...
这个功能可以让 Morny 列出在 Morny Coeur 当中被定义使用的贴纸[^2],或是通过 Morny 内部贴纸 ID[^3] 检查 Morny Coeur 当中的某个贴纸。
### 列出所有贴纸
> **⚠ 刷屏警告!**
> 使用此功能在一般情况下都会造成 Morny 的消息刷屏。在使用前请事先确定自己的操作,以避免意外刷屏给群组管理员~~以及你自己~~带来麻烦。
只需要简单的使用 `/info stickers` 即可以列出 Morny Coeur 内部已定义且已加载的所有的贴纸。
Morny 将会以 *一条贴纸 ID 信息* - *一个此 ID 对应的贴纸* 的格式按照内部定义顺序列出所有内部定义的贴纸。
因此,列出所有贴纸将会产生相当多的信息量,这会导致这个命令使得 Morny 的消息刷屏。
### 检查特定贴纸
通过 `/info stickers.<sticker-id>` 的格式使用命令Morny 即会检查 `<sticker-id>` 所对应的贴纸,并输出这个贴纸。
如果成功Morny 将会通过和列出贴纸一样的方式,按照 *一条贴纸 ID 信息* - *一个此 ID 对应的贴纸* 的格式回应你所检查的贴纸:
![get an sticker with morny sticker id success](./info-stickers-id-success.png)
如果在 Morny Coeur 中并没有这个 ID 所对应的贴纸,那么命令将会失败:
![get an sticker with morny sticker id 404 failed](./info-stickers-id-fail.png)
[TelegramStickers.java]: https://github.com/Eyre-S/Coeur-Morny-Cono/blob/master/src/main/java/cc/sukazyo/cono/morny/data/TelegramStickers.java
[^2]: 具体来说这表示集中定义在 [`cc.sukazyo.cono.morny.data.TelegramStickers`][TelegramStickers.java] 类中的贴纸。
[^3]: Morny 内部贴纸 ID 即为在 [TelegramStickers.java] 中的字段名称。需要注意的是这个 id 是**大小写敏感**的,也就是 `ID_HELLO``id_hello` 是两个完全不同的 id 而且不能混用。这些 Morny 内部贴纸 ID 一般以 `ID_` 开通并使用全大写下划线写法。