259 lines
7.8 KiB
Plaintext
259 lines
7.8 KiB
Plaintext
# 文字处理机器人使用手册(小白友好版)
|
||
|
||
欢迎使用文字处理机器人!你不需要懂编程,只要会打字,就能用它完成各种文字操作——比如加密、解密、打乱顺序、进制转换、排版整理等。
|
||
|
||
---
|
||
|
||
## 一、基础演示
|
||
|
||
在 QQ 群里这样使用:
|
||
|
||
1. **直接输入命令**(适合短文本):
|
||
```
|
||
/textfx reverse 你好世界
|
||
```
|
||
→ 机器人回复:`界世好你`
|
||
|
||
2. **先发一段文字,再用命令处理它**(适合长文本):
|
||
- 先发送:`Hello, World!`
|
||
- 回复这条消息,输入:
|
||
```
|
||
/textfx b64 encode
|
||
```
|
||
→ 机器人返回:`SGVsbG8sIFdvcmxkIQ==`
|
||
|
||
> 命令可写为 `/textfx`、`/处理文字` 或 `/处理文本`。
|
||
> 若不回复消息,命令会处理当前行后面的文本。
|
||
|
||
---
|
||
|
||
## 二、流水线语法(超简单)
|
||
|
||
- 用 `|` 连接多个操作,前一个的输出自动作为后一个的输入。
|
||
- 用 `;` 分隔多条独立指令,它们各自产生输出,最终合并显示。
|
||
- 用 `&&` / `||` 做最小 shell 风格条件执行:
|
||
- `cmd1 && cmd2`:仅当 `cmd1` 成功时执行 `cmd2`
|
||
- `cmd1 || cmd2`:仅当 `cmd1` 失败时执行 `cmd2`
|
||
- 用 `!` 对一条 pipeline 的成功/失败取反。
|
||
- 支持最小 bash-like `if ... then ... else ... fi` 语句。
|
||
- 支持最小 bash-like `while ... do ... done` 循环。
|
||
- 可使用内建真假命令:`true` / `false`。
|
||
- 为避免滥用与卡死:
|
||
- 同一用户同时只能运行 **一个** textfx 脚本
|
||
- 单个脚本最长执行时间为 **60 秒**
|
||
|
||
**例子**:把"HELLO"先反转,再转成摩斯电码:(转换为摩斯电码功能暂未实现)
|
||
```
|
||
textfx reverse HELLO | morse en
|
||
```
|
||
→ 输出:`--- .-.. .-.. . ....`
|
||
|
||
**例子**:失败后兜底执行:
|
||
```
|
||
textfx test a = b || echo 不相等
|
||
```
|
||
→ 输出:`不相等`
|
||
|
||
**例子**:成功后继续执行:
|
||
```
|
||
textfx [ 2 -gt 1 ] && echo 条件成立
|
||
```
|
||
→ 输出:`条件成立`
|
||
|
||
**例子**:真正的 if 语句:
|
||
```
|
||
textfx if test a = b; then echo yes; else echo no; fi
|
||
```
|
||
→ 输出:`no`
|
||
|
||
**例子**:对条件取反:
|
||
```
|
||
textfx ! test a = b && echo 条件不成立
|
||
```
|
||
→ 输出:`条件不成立`
|
||
|
||
**例子**:while 循环:
|
||
```
|
||
textfx while false; do echo 不会执行; done
|
||
```
|
||
→ 输出为空
|
||
|
||
**例子**:多条指令各自输出:
|
||
```
|
||
textfx echo 你好; echo 世界
|
||
```
|
||
→ 输出:
|
||
```
|
||
你好
|
||
世界
|
||
```
|
||
|
||
**例子**:重定向的指令不输出,其余正常输出:
|
||
```
|
||
textfx echo 1; echo 2 > a; echo 3
|
||
```
|
||
→ 输出:
|
||
```
|
||
1
|
||
3
|
||
```
|
||
|
||
---
|
||
|
||
## 三、功能清单(含示例)
|
||
|
||
### reverse(或 rev、反转)
|
||
反转文字。
|
||
示例:`/textfx reverse 爱你一万年` → `年万一你爱`
|
||
|
||
### b64(或 base64)
|
||
Base64 编码或解码。
|
||
示例:`/textfx b64 encode 你好` → `5L2g5aW9`
|
||
示例:`/textfx b64 decode 5L2g5aW9` → `你好`
|
||
|
||
### caesar(或 凯撒、rot)
|
||
凯撒密码(仅对英文字母有效)。
|
||
示例:`/textfx caesar 3 ABC` → `DEF`
|
||
示例:`/textfx caesar -3 DEF` → `ABC`
|
||
|
||
### morse(或 摩斯)
|
||
将摩斯电码解码为文字(支持英文和日文)。字符间用空格,单词间用 `/`。
|
||
示例:`/textfx morse en .... . .-.. .-.. ---` → `HELLO`
|
||
示例:`/textfx morse jp -... --.-- -.. --.. ..- ..` → `ハアホフウイ`
|
||
|
||
### baseconv(或 进制转换)
|
||
在不同进制之间转换数字。
|
||
示例:`/textfx baseconv 2 10 1101` → `13`
|
||
示例:`/textfx baseconv 10 16 255` → `FF`
|
||
|
||
### shuffle(或 打乱)
|
||
随机打乱文字顺序。
|
||
示例:`/textfx shuffle abcdef` → `fcbade`(每次结果不同)
|
||
|
||
### sort(或 排序)
|
||
将文字按字符顺序排列。
|
||
示例:`/textfx sort dbca` → `abcd`
|
||
|
||
### b64hex
|
||
在 Base64 和十六进制之间互转。
|
||
示例:`/textfx b64hex dec SGVsbG8=` → `48656c6c6f`
|
||
示例:`/textfx b64hex enc 48656c6c6f` → `SGVsbG8=`
|
||
|
||
### align(或 format、排版)
|
||
按指定格式分组排版文字。
|
||
示例:`/textfx align 2 4 0123456789abcdef` →
|
||
```
|
||
01 23 45 67
|
||
89 ab cd ef
|
||
```
|
||
|
||
### echo
|
||
输出指定文字。
|
||
示例:`/textfx echo 你好` → `你好`
|
||
|
||
### cat
|
||
读取并拼接缓存内容,类似 Unix cat 命令。
|
||
- 无参数时直接传递标准输入(管道输入或回复的消息)。
|
||
- 使用 `-` 代表标准输入,可与缓存名混合使用。
|
||
- 支持多个参数,按顺序拼接输出。
|
||
|
||
示例:
|
||
- 传递输入:`/textfx echo 你好 | cat` → `你好`
|
||
- 读取缓存:`/textfx cat mytext` → 输出 mytext 的内容
|
||
- 拼接多个缓存:`/textfx cat a b c` → 依次拼接缓存 a、b、c
|
||
- 混合标准输入和缓存:`/textfx echo 前缀 | cat - mytext` → 拼接标准输入与缓存 mytext
|
||
|
||
### 缓存操作(保存中间结果)
|
||
- 保存:`/textfx reverse 你好 > mytext`(不输出,存入 mytext)
|
||
- 读取:`/textfx cat mytext` → `好你`
|
||
- 追加:`/textfx echo world >> mytext`
|
||
- 删除:`/textfx rm mytext`
|
||
|
||
> 缓存仅在当前对话中有效,重启后清空。
|
||
|
||
### true / false / test / [
|
||
最小 shell 风格条件命令。通常配合 `if`、`&&`、`||`、`!` 使用。
|
||
|
||
支持:
|
||
- `true`:总是成功
|
||
- `false`:总是失败
|
||
- 字符串非空:`test foo`
|
||
- `-n` / `-z`:`test -n foo`、`test -z ""`
|
||
- 字符串比较:`test a = a`、`test a != b`
|
||
- 整数比较:`test 2 -gt 1`、`test 3 -le 5`
|
||
- 方括号别名:`[ 2 -gt 1 ]`
|
||
|
||
示例:
|
||
- `/textfx true && echo 一定执行`
|
||
- `/textfx false || echo 兜底执行`
|
||
- `/textfx test hello && echo 有内容`
|
||
- `/textfx test a = b || echo 不相等`
|
||
- `/textfx [ 3 -ge 2 ] && echo yes`
|
||
|
||
### if / then / else / fi
|
||
支持最小 bash-like 条件语句。
|
||
|
||
示例:
|
||
- `/textfx if test a = a; then echo yes; else echo no; fi`
|
||
- `/textfx if [ 2 -gt 1 ]; then echo 成立; fi`
|
||
- `/textfx if test a = a; then if test b = c; then echo x; else echo y; fi; fi`
|
||
|
||
说明:
|
||
- `if` 后面跟一个条件链,可配合 `test`、`[`、`!`、`&&`、`||`
|
||
- `then` 和 `else` 后面都可以写多条以 `;` 分隔的 textfx 语句
|
||
- `else` 可省略
|
||
|
||
### while / do / done
|
||
支持最小 bash-like 循环语句。
|
||
|
||
示例:
|
||
- `/textfx while false; do echo 不会执行; done`
|
||
- `/textfx while ! false; do false; done`
|
||
- `/textfx while ! false; do if true; then false; fi; done`
|
||
|
||
说明:
|
||
- `while` 后面跟一个条件链,返回成功就继续循环
|
||
- `do` 后面可写多条以 `;` 分隔的 textfx 语句
|
||
- 为避免 bot 死循环,内置最大循环次数限制;超限会报错
|
||
|
||
### replace(或 替换、sed)
|
||
替换文字(支持正则表达式)。
|
||
示例(普通):`/textfx replace 世界 宇宙 你好世界` → `你好宇宙`
|
||
示例(正则):`/textfx replace \d+ [数字] 我有123个苹果` → `我有[数字]个苹果`
|
||
|
||
### trim(或 strip、去空格)
|
||
去除文本首尾空白字符。
|
||
示例:`/textfx trim " 你好 "` → `你好`
|
||
示例:`/textfx echo " hello " | trim` → `hello`
|
||
|
||
### ltrim(或 lstrip)
|
||
去除文本左侧空白字符。
|
||
示例:`/textfx ltrim " 你好 "` → `你好 `
|
||
|
||
### rtrim(或 rstrip)
|
||
去除文本右侧空白字符。
|
||
示例:`/textfx rtrim " 你好 "` → ` 你好`
|
||
|
||
### squeeze(或 压缩空白)
|
||
将连续的空白字符(空格、制表符)压缩为单个空格。
|
||
示例:`/textfx squeeze "你好 世界"` → `你好 世界`
|
||
|
||
### lines(或 行处理)
|
||
按行处理文本,支持以下子命令:
|
||
- `lines trim` — 去除每行首尾空白
|
||
- `lines empty` — 去除所有空行
|
||
- `lines squeeze` — 将连续空行压缩为一行
|
||
|
||
示例:`/textfx echo " hello\n\n\n world " | lines trim` → `hello\n\n\n world`
|
||
示例:`/textfx echo "a\n\n\nb" | lines squeeze` → `a\n\nb`
|
||
|
||
---
|
||
|
||
## 常见问题
|
||
|
||
- **没反应?** 可能内容被安全系统拦截,机器人会提示“内容被拦截”。
|
||
- **只支持纯文字**,暂不支持图片或文件。
|
||
- 命令拼错时,机器人会提示“不存在名为 xxx 的函数”,请检查名称。
|
||
|
||
快去试试吧!用法核心:**`/textfx` + 你的操作**
|