This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-skills/skills/obsidian-kb/AUTO_TRIGGER.md
T
OpenClaw Agent fbcc3df2cf feat(obsidian-kb): 实现短链接解析功能
- 新增 shortlink_resolver.py 模块
  * 检测 B站短链接(b23.tv)和其他短链接服务
  * 提供友好的用户引导信息
  * 支持 Playwright 浏览器自动化解析(可选)

- 集成到 handler.py
  * 短链接自动检测和提示
  * 智能区分短链接和完整 URL

- 更新 add_video.py
  * 支持短链接解析
  * 添加 --playwright 参数启用浏览器解析

- 新增 test_shortlink.py 测试脚本
  * 测试单个短链接检测
  * 测试多个短链接检测
  * 测试混合内容场景
  * 所有测试通过

- 更新文档
  * SKILL.md: 添加短链接说明
  * AUTO_TRIGGER.md: 添加短链接章节
  * obsidian-kb-improvements.md: 标记任务2为已完成

功能特点:
- 方案A(用户引导):已实现并作为默认行为
- 方案B(浏览器自动化):提供 PlaywrightResolver 类,可选使用
- 方案C(代理池):未实现(复杂度高,收益低)

验收标准达成:
✅ 短链接能够友好处理(显示引导信息)
✅ 用户不会感到困惑
✅ 支持 b23.tv 和其他短链接服务(检测)
✅ 集成到 handler.py
✅ 测试各种短链接场景
2026-02-06 21:22:45 +08:00

257 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# obsidian-kb 自动触发机制
## 概述
已实现 obsidian-kb 技能的自动触发机制,当用户通过 WhatsApp/Telegram 等渠道发送视频或文章链接时,技能会自动识别并提示处理。
## 实现方式
### 1. SKILL.md 更新
添加了 frontmatter 元数据和详细的触发规则说明:
```yaml
---
name: obsidian-kb
description: Automatically detect and process video/article links...
version: 1.0.0
---
```
在文档中添加了:
- 自动触发规则章节
- 触发模式说明
- 自动触发流程
- 批量处理支持
- 短链接友好提示
### 2. Handler 脚本
创建了 `handler.py` 脚本,功能包括:
- **链接检测**: 使用正则表达式匹配多种 URL 模式
- **元数据提取**: 识别平台、内容类型和 ID
- **预览生成**: 格式化显示识别到的内容
- **智能去重**: 避免重复检测相同的链接
- **短链接处理**: 对 b23.tv 等短链接显示友好提示
## 支持的 URL 模式
### B站视频
- 完整 URL: `https://www.bilibili.com/video/BV*`
- 短链接: `https://b23.tv/*`
- BV号: `BV*`
### YouTube 视频
- 完整 URL: `https://www.youtube.com/watch?v=*`
- 短链接: `https://youtu.be/*`
### 知乎文章
- 专栏文章: `https://zhuanlan.zhihu.com/p/*`
- 回答: `https://www.zhihu.com/question/*/answer/*`
## 使用流程
### 自动触发模式(推荐)
1. 用户发送链接
2. 系统自动检测链接
3. 显示内容预览
4. 询问用户确认
5. 用户确认后添加到收件箱
6. 可选:立即处理
### 示例
```
用户: https://www.bilibili.com/video/BV1xx411c7mD
助手: 🔍 检测到内容链接:
📺 [1] B站视频
URL: https://www.bilibili.com/video/BV1xx411c7mD
ID: BV1xx411c7mD
是否添加到收件箱并处理?(y/n)
```
### 短链接示例
```
用户: https://b23.tv/oLBZZfK
助手: 🔍 检测到内容链接:
📺 [1] B站视频
URL: https://b23.tv/oLBZZfK
⚠️ 短链接,需要用户提供完整URL或ID
🔗 检测到短链接
⚠️ 由于反爬虫保护,短链接无法自动解析
📱 手机用户:
1. 打开链接
2. 在浏览器地址栏复制完整 URL
3. 发送给助手
💻 桌面用户:
1. 发送 BV 号(如:BV1jcFqz7EFW)
2. 或使用完整 URL
💡 提示:完整 URL 格式为:https://www.bilibili.com/video/BVxxxxx
其他链接是否立即处理?(y/n)
```
## 批量处理
支持一次发送多个链接:
```
用户: 这几个视频不错:
https://www.bilibili.com/video/BV1xx411c7mD
BV2yy522c8nE
https://www.youtube.com/watch?v=dQw4w9WgXcQ
助手: 🔍 检测到内容链接:
📺 [1] B站视频
URL: https://www.bilibili.com/video/BV1xx411c7mD
ID: BV1xx411c7mD
📺 [2] B站视频
URL: https://www.bilibili.com/video/BV2yy522c8nE
ID: BV2yy522c8nE
▶️ [3] YouTube视频
URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
ID: dQw4w9WgXcQ
是否将上述 3 个内容添加到收件箱?(y/n)
```
## 测试结果
已测试所有 URL 模式:
✅ B站完整 URL: `https://www.bilibili.com/video/BV1xx411c7mD`
✅ B站 BV号: `BV1jcFqz7EFW`
✅ B站短链接: `https://b23.tv/oLBZZfK` (显示友好提示)
✅ YouTube 视频: `https://www.youtube.com/watch?v=dQw4w9WgXcQ`
✅ 知乎文章: `https://zhuanlan.zhihu.com/p/123456789`
✅ 重复检测: 正确去重,避免重复显示
## 文件变更
```
skills/obsidian-kb/
├── SKILL.md [修改] 添加 frontmatter 和触发规则
├── handler.py [新增] 自动触发处理器
└── AUTO_TRIGGER.md [新增] 本文档
```
## 与 OpenClaw 集成
handler.py 可以通过以下方式集成:
1. **手动调用**: 使用 CLI 测试和调试
```bash
python3 handler.py "text with link"
```
2. **Agent 调用**: AI Agent 在接收到用户消息后,调用 handler 检测链接
3. **插件集成**: 未来可创建 OpenClaw 插件,自动监听消息并触发 handler
## 验收标准
- [x] SKILL.md 添加了触发规则
- [x] Handler 能够检测各种 URL 格式
- [x] 显示友好的预览信息
- [x] 短链接显示友好提示
- [x] 支持批量检测多个链接
- [x] 智能去重避免重复显示
- [x] 所有 URL 模式测试通过
## 后续工作
### 短链接解析(P2 优先级) ✅ 已完成
已完成短链接解析功能(2026-02-06):
#### 已实现功能
1. **短链接检测模块** (`shortlink_resolver.py`)
- 检测 B站短链接(b23.tv)
- 支持其他短链接服务(bit.ly, t.cn, dwz.cn 等)
- 提供友好的用户引导信息
2. **用户引导(方案A)**
- 检测到短链接时显示清晰的操作指南
- 分别针对手机用户和桌面用户提供建议
- 支持单个短链接和多个短链接的不同提示格式
3. **浏览器自动化(方案B - 可选)**
- 提供了 PlaywrightResolver 类
- 需要额外安装 Playwright:
```bash
pip install playwright
playwright install chromium
```
- 可在 `add_video.py` 中使用 `--playwright` 参数启用
4. **集成到现有流程**
- `handler.py` 集成短链接检测
- `add_video.py` 支持短链接解析
- 短链接会优先显示帮助信息,不会自动处理
#### 使用示例
**handler.py 自动触发:**
```bash
python3 handler.py "Check this: https://b23.tv/oLBZZfK"
```
**add_video.py 手动添加:**
```bash
python3 add_video.py "https://b23.tv/oLBZZfK"
python3 add_video.py "https://b23.tv/oLBZZfK" --playwright # 使用浏览器解析
```
**shortlink_resolver.py 独立测试:**
```bash
python3 shortlink_resolver.py "Test link: https://b23.tv/abc"
python3 shortlink_resolver.py "https://b23.tv/abc" --playwright # 浏览器解析
```
#### 文件变更
```
skills/obsidian-kb/
├── SKILL.md [修改] 添加短链接说明
├── handler.py [修改] 集成短链接检测
├── add_video.py [修改] 支持短链接解析
├── shortlink_resolver.py [新增] 短链接解析模块
└── AUTO_TRIGGER.md [修改] 添加短链接章节
```
#### 验收标准
- [x] 短链接能够友好处理(显示引导信息)
- [x] 用户不会感到困惑
- [x] 支持 b23.tv 和其他短链接服务(检测)
- [x] 集成到 handler.py
- [x] 测试各种短链接场景(单个、多个、混合)
### YouTube 和知乎支持(P1 优先级)
当前仅 Bilibili 有完整适配器:
- 实现 YouTube 适配器
- 实现知乎适配器
- 添加相应的提取和处理逻辑
## 总结
自动触发机制已基本完成,用户现在可以通过简单的发送链接来触发 obsidian-kb 技能,大大提升了使用体验。