slash page complete

This commit is contained in:
A.C.Sukazyo Eyre 2023-01-12 16:24:57 +08:00
parent 1fa3b9cdbd
commit e322c10a5b
Signed by: Eyre_S
GPG Key ID: C17CE40291207874
2 changed files with 71 additions and 10 deletions

View File

@ -18,10 +18,6 @@
整个页面可能需要重新考虑,一部分写的很简陋,有机会的话考虑重新思考如何排版说明。 整个页面可能需要重新考虑,一部分写的很简陋,有机会的话考虑重新思考如何排版说明。
## [slash](./sp/slash) "除了基础之外的更多" ---
目前只写了最基础的部分,甚至**两个参数的情况**都没写,**特殊处理**也没写。待补充。 ## [slash username?](./sp/slash#todo-1) "或许以后会搬到新页面去?"
还有
### [slash username?](./sp/slash#todo-1) "或许以后会搬到新页面去?"

View File

@ -24,6 +24,12 @@
text-decoration: underline; text-decoration: underline;
} }
.act { color: skyblue; } .act { color: skyblue; }
.obj { color: mediumaquamarine; }
.i { color: gray; }
.tq {
color: gainsboro;
font-style: italic;
}
</style> </style>
很简单,只需要像以下一样输入 斜杠**`/`** 加上 **一个单词**,就可以实现基础的 **slash** 响应。 很简单,只需要像以下一样输入 斜杠**`/`** 加上 **一个单词**,就可以实现基础的 **slash** 响应。
@ -32,7 +38,9 @@
这样子,**bot** 就会回应一句话以“描述你刚刚做了什么”。 这样子,**bot** 就会回应一句话以“描述你刚刚做了什么”。
<pre><code class=nohighlight><span class=u1>安妮 艾爾</span> <font color=skyblue>摸摸</font><span class=u2>自己</span> !</code></pre> <pre><code class=nohighlight><small class=tq>&gt; <u>Morny Cono</u></small>
<small class=tq>&gt; in reply to <u>安妮</u></small>
<span class=u1>安妮</span> <font color=skyblue>摸摸</font><span class=u2>自己</span> !</code></pre>
**bot** 的**回应**中,带有<b><u>下划线</u></b>的部分会带有一个指向**某个人**的链接。一个**回应**会永远包括两个**人**。<code class="slb u1">第一个</code> 用户永远是发送斜杠消息的**你自己**。而**第二个人**:如果你在发送消息的时候**回复**了某个人,那么**第二个人**就是 <code class="slb u2">你回复的人</code>;如果你**没有**回复任何人,那么**第二个人**将会是 <code class="slb u2">自己</code> —— 字面值的“自己”(当然指向的链接也是你的用户链接)。 **bot** 的**回应**中,带有<b><u>下划线</u></b>的部分会带有一个指向**某个人**的链接。一个**回应**会永远包括两个**人**。<code class="slb u1">第一个</code> 用户永远是发送斜杠消息的**你自己**。而**第二个人**:如果你在发送消息的时候**回复**了某个人,那么**第二个人**就是 <code class="slb u2">你回复的人</code>;如果你**没有**回复任何人,那么**第二个人**将会是 <code class="slb u2">自己</code> —— 字面值的“自己”(当然指向的链接也是你的用户链接)。
@ -46,12 +54,69 @@
> >
> <small id="todo-1">这一部分以后应该会单独拿出来写个页面的,虽然,写出来会挺“内部实现”相关的,谁知道呢。</small> > <small id="todo-1">这一部分以后应该会单独拿出来写个页面的,虽然,写出来会挺“内部实现”相关的,谁知道呢。</small>
### 添加更多内容
也可以在**后面**再添加一个**空格**,通过以下的句式为动作和回应**添加更多的内容**。
<pre><code class=nohighlight><small class=tq>&lt; in reply to <u>qwq</u></small>
<span class=slash>/</span><span class=act>摸摸</span> <span class=obj></span>
<small class=tq>&gt; <u>Morny Cono</u></small>
<small class=tq>&gt; in reply to <u>安妮</u></small>
<span class=u1>安妮</span> <font color=skyblue>摸摸</font><span class=u2>qwq</span> <span class=obj></span> !</code></pre>
只要 **bot** 在句式中找到了**第一个空格****其后**的内容都会被认为是 <code class="slb obj">附加信息</code> ,而只有**第一个空格**之**前**的内容将会被认为是 <code class="slb act">动作</code>。为了在 <code class="slb act">动作</code> 部分添加**空格**,你可以使用**单引号** <code class="slb i">'</code> 或**双引号** <code class="slb i">"</code> 包围住**动作部分**,这可以使得 **bot** 忽略掉引号内部的**空格**的断句功能,让空格可以被**包含**进 <code class="slb act">动作</code> 部分当中。
<pre><code class=nohighlight><small class=tq>&lt; in reply to <u>赤井 瑠璃❄️🏳️‍⚧️</u></small>
<span class=slash>/</span><span class=i>"</span><span class=act>greatly thanks</span><span class=i>"</span> <span class=obj>for caring me</span>
<small class=tq>&gt; <u>Morny Cono</u></small>
<small class=tq>&gt; in reply to <u>安妮</u></small>
<span class=u1>安妮</span> <font color=skyblue>greatly thanks</font><span class=u2>赤井 瑠璃❄️🏳️‍⚧️</span> <span class=obj>for caring me</span> !</code></pre>
## special: 特殊句式的忽略
为了规避一些很可能发生的意外触发<small>因为斜杠 `/` 开头的句子还是会很常见很常见的</small>bot 会忽略一些特定的句式。
目前bot 会忽略 <code class="slb act">动作</code> 部分符合 Telegram 命令格式,或者看起来很像是一个文件路径的句子。
> 关于 Telegram 命令格式:
>
> bot 判断一个命令是否是 telegram 命令,是通过判断这一部分是只有大小写字母,数字,以及下划线的格式,后面还可以有 `@` 加上一个用户名,也可以没有这一部分。简单来说,这个格式就是 telegram 客户端会自动高亮出的命令格式。如果这一部分完全符合这个格式,那么 bot 就认为这是一个命令,进而不进行 slash 回应。
>
> 对于那些想要更多细节的人,这是 bot 内部用于判断 `动作` 部分是否符合 Telegram 命令格式的 RegEx 表达式:
> <code class=regex>^\\w+(@\\w+)?$</code>
> 关于文件路径格式的判定:
>
> bot 用了相当偷懒的方案。只要 bot 在 `动作` 部分检测出了一个或多个正斜杠 `/`(排除掉 slash 开头本身就要求的一个),就会认为这是一个文件路径,就会不进行 slash 回应。
### 强制执行 slash 回应
很多时候,即使满足了上述的特殊句式,但其实还是想要 slash bot 进行回应。Morny 设计了一个方式,使得 bot 能够完全忽略特殊句式的情况执行 slash 回应。这个方式甚至能规避想要发送的<code class="slb act">动作</code>和 Morny 本身的命令产生冲突的情况,能使得两个功能都可以正常执行。
使用方式很简单:在最开始的斜杠 <code class="slb slash">/</code><code class="slb act">动作</code> 中间加一个 空格 就好了。
<pre><code class=nohighlight><small class=tq>&lt; in reply to <u>qwq</u></small>
<span class=slash>/</span><span class=act>pia</span>
<small class=tq>&gt; nothing will happens.</small>
<small class=tq>&lt; in reply to <u>qwq</u></small>
<span class=slash>/</span> <span class=act>pia</span>
<small class=tq>&gt; <u>Morny Cono</u></small>
<small class=tq>&gt; in reply to <u>安妮</u></small>
<span class=u1>安妮</span> <font color=skyblue>pia</font><span class=u2>qwq</span></code></pre>
---
## 你知道吗 ## 你知道吗
> 这一部分先等等,写完再发。 <!-- > 这一部分先等等,写完再发。 -->
<!-- 这个功能现在的版本,细节方面是模仿 [@hasutestbot] 的实现形式的。旧版还有着更好玩的各种特殊处理和更加 *可能人性化/更智能* 的设计,不过后来感觉,弄得太复杂反而太失败了就还是研究成功的前辈的做法好了,所以有了现在的版本。 这个功能现在的版本,细节方面是模仿 [@hasutestbot] 的实现形式的。旧版还有着更好玩的各种特殊处理和更加 *可能人性化/更智能* 的设计,不过后来感觉,弄得太复杂反而太失败了就还是研究成功的前辈的做法好了,所以有了现在的版本。
虽然其实模仿 [@hasutestbot] 模仿的相当糟糕,它的很多特殊处理其实都没有抄到。 虽然其实模仿 [@hasutestbot] 模仿的相当糟糕,它的很多特殊处理其实都没有抄到。
~~然而最后,[@hasutestbot] 死<small>于服务器忘记续费</small>了。~~ --> ~~然而最后,[@hasutestbot] 死<small>于服务器忘记续费</small>了。~~