From e322c10a5bedf34d72aa5a4f32afd6f1809fa9b1 Mon Sep 17 00:00:00 2001 From: Eyre_S Date: Thu, 12 Jan 2023 16:24:57 +0800 Subject: [PATCH] slash page complete --- note-todo.md | 8 ++---- sp/slash.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 71 insertions(+), 10 deletions(-) diff --git a/note-todo.md b/note-todo.md index 8dd00a1..84c3426 100644 --- a/note-todo.md +++ b/note-todo.md @@ -18,10 +18,6 @@ 整个页面可能需要重新考虑,一部分写的很简陋,有机会的话考虑重新思考如何排版说明。 -## [slash](./sp/slash) "除了基础之外的更多" +--- -目前只写了最基础的部分,甚至**两个参数的情况**都没写,**特殊处理**也没写。待补充。 - -还有 - -### [slash username?](./sp/slash#todo-1) "或许以后会搬到新页面去?" +## [slash username?](./sp/slash#todo-1) "或许以后会搬到新页面去?" diff --git a/sp/slash.md b/sp/slash.md index d29d033..62b2202 100644 --- a/sp/slash.md +++ b/sp/slash.md @@ -24,6 +24,12 @@ text-decoration: underline; } .act { color: skyblue; } + .obj { color: mediumaquamarine; } + .i { color: gray; } + .tq { + color: gainsboro; + font-style: italic; + } 很简单,只需要像以下一样输入 斜杠**`/`** 加上 **一个单词**,就可以实现基础的 **slash** 响应。 @@ -32,7 +38,9 @@ 这样子,**bot** 就会回应一句话以“描述你刚刚做了什么”。 -
安妮 艾爾 摸摸自己 !
+
> Morny Cono
+> in reply to 安妮
+安妮 摸摸自己 !
**bot** 的**回应**中,带有下划线的部分会带有一个指向**某个人**的链接。一个**回应**会永远包括两个**人**。第一个 用户永远是发送斜杠消息的**你自己**。而**第二个人**:如果你在发送消息的时候**回复**了某个人,那么**第二个人**就是 你回复的人;如果你**没有**回复任何人,那么**第二个人**将会是 自己 —— 字面值的“自己”(当然指向的链接也是你的用户链接)。 @@ -46,12 +54,69 @@ > > 这一部分以后应该会单独拿出来写个页面的,虽然,写出来会挺“内部实现”相关的,谁知道呢。 +### 添加更多内容 + +也可以在**后面**再添加一个**空格**,通过以下的句式为动作和回应**添加更多的内容**。 + +
< in reply to qwq
+/摸摸 
+
+> Morny Cono
+> in reply to 安妮
+安妮 摸摸qwq  !
+ +只要 **bot** 在句式中找到了**第一个空格**,**其后**的内容都会被认为是 附加信息 ,而只有**第一个空格**之**前**的内容将会被认为是 动作。为了在 动作 部分添加**空格**,你可以使用**单引号** ' 或**双引号** " 包围住**动作部分**,这可以使得 **bot** 忽略掉引号内部的**空格**的断句功能,让空格可以被**包含**进 动作 部分当中。 + +
< in reply to 赤井 瑠璃❄️🏳️‍⚧️
+/"greatly thanks" for caring me
+
+> Morny Cono
+> in reply to 安妮
+安妮 greatly thanks赤井 瑠璃❄️🏳️‍⚧️ for caring me !
+ +## special: 特殊句式的忽略 + +为了规避一些很可能发生的意外触发因为斜杠 `/` 开头的句子还是会很常见很常见的,bot 会忽略一些特定的句式。 + +目前,bot 会忽略 动作 部分符合 Telegram 命令格式,或者看起来很像是一个文件路径的句子。 + +> 关于 Telegram 命令格式: +> +> bot 判断一个命令是否是 telegram 命令,是通过判断这一部分是只有大小写字母,数字,以及下划线的格式,后面还可以有 `@` 加上一个用户名,也可以没有这一部分。简单来说,这个格式就是 telegram 客户端会自动高亮出的命令格式。如果这一部分完全符合这个格式,那么 bot 就认为这是一个命令,进而不进行 slash 回应。 +> +> 对于那些想要更多细节的人,这是 bot 内部用于判断 `动作` 部分是否符合 Telegram 命令格式的 RegEx 表达式: +> ^\\w+(@\\w+)?$ + + +> 关于文件路径格式的判定: +> +> bot 用了相当偷懒的方案。只要 bot 在 `动作` 部分检测出了一个或多个正斜杠 `/`(排除掉 slash 开头本身就要求的一个),就会认为这是一个文件路径,就会不进行 slash 回应。 + +### 强制执行 slash 回应 + +很多时候,即使满足了上述的特殊句式,但其实还是想要 slash bot 进行回应。Morny 设计了一个方式,使得 bot 能够完全忽略特殊句式的情况执行 slash 回应。这个方式甚至能规避想要发送的动作和 Morny 本身的命令产生冲突的情况,能使得两个功能都可以正常执行。 + +使用方式很简单:在最开始的斜杠 /动作 中间加一个 空格 就好了。 + +
< in reply to qwq
+/pia
+> nothing will happens.
+
+< in reply to qwq
+/ pia
+
+> Morny Cono
+> in reply to 安妮
+安妮 piaqwq
+ +--- + ## 你知道吗 -> 这一部分先等等,写完再发。 + - +~~然而最后,[@hasutestbot] 死于服务器忘记续费了。~~