feat(plugin): 集成 OpenClaw Bridge + QQ 操作技能套件
新增 openclaw_bridge 插件,实现 QQ ↔ OpenClaw Gateway 桥接: src/process.py: - QQ 消息自动转发 OpenClaw Gateway - 内置安全检测(高危词、管理员白名单、MC指令过滤) - 高危词库外部化到 config.toml [security] section - 群昵称自动解析 - Session 隔离(按群×用户) config/openclawbridge/config.toml: - 插件配置模板(已脱敏:占位符替代个人信息) scripts/qq_*.py (×15): - 消息发送/文件传输/群管理/好友管理 - 信息查询/历史回溯/OCR/点赞 - 全部脱敏(QQ号→YOUR_ADMIN_QQ, IP→YOUR_NAPCAT_HOST等) skills/*/SKILL.md (×8): - AgentSkills 使用指导 - qq-messenger / qq-management / qq-resolver / qq-napcat-extras - browser / file-process / mc-query / nix-helper SKILL.md: - AgentSkill 入口,完整架构说明和部署步骤
This commit is contained in:
150
skills/qq-napcat-extras/SKILL.md
Normal file
150
skills/qq-napcat-extras/SKILL.md
Normal file
@ -0,0 +1,150 @@
|
||||
# qq-napcat-extras Skill
|
||||
|
||||
NapCat 扩展能力:**好友点赞** + **图片文字识别(OCR)**。
|
||||
|
||||
---
|
||||
|
||||
## 跨主机文件传递机制
|
||||
|
||||
NapCat 运行在 Docker 容器中,宿主目录与容器目录通过 volume 映射:
|
||||
|
||||
```
|
||||
宿主机 YOUR_SHARED_DIR/* ⇔ 容器内 /app/files/*
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 脚本清单
|
||||
|
||||
| 脚本 | 用途 |
|
||||
|---|---|
|
||||
| `qq_send_like.py` | 给 QQ 好友点赞 |
|
||||
| `qq_ocr_image.py` | 图片文字识别(本地 Tesseract + NapCat 回退) |
|
||||
|
||||
---
|
||||
|
||||
## 1. 好友点赞
|
||||
|
||||
给指定 QQ 好友点赞(发送「戳一戳」/点赞)。
|
||||
|
||||
**脚本路径:** `YOUR_WORKSPACE_PATH/scripts/qq_send_like.py`
|
||||
|
||||
### 用法
|
||||
|
||||
```python
|
||||
import subprocess, json
|
||||
|
||||
result = subprocess.run(
|
||||
["python3", "YOUR_WORKSPACE_PATH/scripts/qq_send_like.py", "YOUR_ADMIN_QQ", "1"],
|
||||
text=True, timeout=15, capture_output=True
|
||||
)
|
||||
data = json.loads(result.stdout)
|
||||
# data["status"] == "ok" 表示成功
|
||||
```
|
||||
|
||||
### 参数
|
||||
|
||||
| 参数 | 说明 |
|
||||
|---|---|
|
||||
| `<user_id>` | 目标 QQ 号(必需) |
|
||||
| `<times>` | 点赞次数,1-20(可选,默认 1) |
|
||||
|
||||
### 返回格式
|
||||
|
||||
```json
|
||||
{"status": "ok", "retcode": 0, "data": null, "message": "", "wording": "", "echo": null}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. 图片文字识别 (OCR)
|
||||
|
||||
使用**本地 Tesseract OCR**(tesseract 5.5 + chi_sim/eng),NapCat 作为回退。
|
||||
|
||||
### OCR 策略
|
||||
|
||||
```
|
||||
本地图片 → Tesseract OCR(快速可靠,无需 GUI)
|
||||
↓ 失败
|
||||
NapCat /ocr_image(Docker 环境大概率超时)
|
||||
```
|
||||
|
||||
### 用法
|
||||
|
||||
```python
|
||||
import subprocess, json
|
||||
|
||||
# 方式1:本地文件
|
||||
result = subprocess.run(
|
||||
["python3", "YOUR_WORKSPACE_PATH/scripts/qq_ocr_image.py",
|
||||
"/tmp/screenshot.png"],
|
||||
text=True, timeout=120, capture_output=True
|
||||
)
|
||||
data = json.loads(result.stdout)
|
||||
print(data.get("data", {}).get("full_text", ""))
|
||||
|
||||
# 方式2:指定语言
|
||||
result = subprocess.run(
|
||||
["python3", "YOUR_WORKSPACE_PATH/scripts/qq_ocr_image.py",
|
||||
"--file", "/tmp/image.png", "--lang", "eng"],
|
||||
text=True, timeout=120, capture_output=True
|
||||
)
|
||||
|
||||
# 方式3:远程 URL(自动下载后 Tesseract 识别)
|
||||
result = subprocess.run(
|
||||
["python3", "YOUR_WORKSPACE_PATH/scripts/qq_ocr_image.py",
|
||||
"--url", "https://example.com/msg.png"],
|
||||
text=True, timeout=120, capture_output=True
|
||||
)
|
||||
|
||||
# 方式4:强制走 NapCat(跳过本地 Tesseract)
|
||||
result = subprocess.run(
|
||||
["python3", "YOUR_WORKSPACE_PATH/scripts/qq_ocr_image.py",
|
||||
"--file", "/tmp/img.png", "--force-napcat"],
|
||||
text=True, timeout=120, capture_output=True
|
||||
)
|
||||
```
|
||||
|
||||
### 参数
|
||||
|
||||
| 参数 | 说明 |
|
||||
|---|---|
|
||||
| `<path>` | 本地图片路径(位置参数) |
|
||||
| `--file <path>` | 本地图片文件路径 |
|
||||
| `--url <url>` | 远程图片 URL(自动下载后识别) |
|
||||
| `--lang <lang>` | 识别语言(默认 `chi_sim+eng`) |
|
||||
| `--force-napcat` | 强制使用 NapCat(跳过 Tesseract) |
|
||||
|
||||
### 语言选项
|
||||
|
||||
| 值 | 说明 |
|
||||
|---|---|
|
||||
| `chi_sim` | 简体中文 |
|
||||
| `chi_tra` | 繁体中文 |
|
||||
| `eng` | 英文 |
|
||||
| `chi_sim+eng` | 中英文混合(**默认,推荐**) |
|
||||
| `jpn` / `kor` | 日文 / 韩文(需安装对应 tessdata) |
|
||||
|
||||
### 成功返回格式
|
||||
|
||||
```json
|
||||
{
|
||||
"status": "ok",
|
||||
"source": "tesseract",
|
||||
"data": {
|
||||
"texts": [
|
||||
{"text": "识别结果", "confidence": 95, "bbox": {"x": 10, "y": 20, "w": 100, "h": 30}}
|
||||
],
|
||||
"full_text": "所有识别到的文字\n多行文本",
|
||||
"language": "chi_sim+eng"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 点赞不可滥用,同一好友约 10 秒间隔限制
|
||||
2. 连接 NapCat 失败时检查 `http://YOUR_NAP CAT_HOST:25570`
|
||||
3. OCR 远程 URL 会先下载到 `/tmp`,识别完自动删除
|
||||
Reference in New Issue
Block a user