Files

130 lines
3.5 KiB
Markdown

# Legado书源创建技能
用于为 Legado 阅读器创建、调试和验证书源。这个技能默认遵循三条原则:
- AI 对页面结构、接口链路和规则语义的判断优先于脚本输出
- 网站可登录时,优先在登录态下分析
- 登录需要扫码、验证码、短信或人工确认时,应立即请求人类协助
- 正式生成书源前,必须先做网站可生成性评估
## 可生成性评估
在写规则前,先输出一份站点评估。评级只允许使用以下四类:
- `可直接生成`
- `可生成但高风险`
- `需登录后再评估`
- `不建议生成`
如果评级为 `需登录后再评估` 或 `不建议生成`,仍然允许继续,但必须明确标成 `高风险`,并说明继续生成的理由。
推荐输出模板:
```markdown
## 网站可生成性评估
- 目标站点:
- 登录状态:
- 搜索可用性:
- 详情可用性:
- 目录可用性:
- 正文可用性:
- 特殊风险:
- 可生成性评级:
- 是否继续生成:
- 继续生成理由 / 停止理由:
```
## 脚本现状
主脚本现在以 Node 为主:
- `scripts/analyze_with_playwright.mjs`
- `scripts/validate_source.mjs`
- `scripts/test_rules.mjs`
- `scripts/generate_template.mjs`
同名 `.py` 文件保留为兼容入口,会自动转调到对应的 `.mjs` 脚本。
## 依赖
```bash
npm i playwright
```
如果只使用 `validate_source.mjs`、`test_rules.mjs` 或 `generate_template.mjs`,不需要额外依赖。
## 推荐用法
```bash
# 分析网站,支持人工登录后继续
node scripts/analyze_with_playwright.mjs https://novel-site.com --manual-login --save analysis.json
# 基于分析结果生成模板
node scripts/generate_template.mjs --analysis analysis.json
# 审计规则,不伪装成完整 Legado 解析器
node scripts/test_rules.mjs my_source.json --keyword 凡人修仙传
# 验证书源结构
node scripts/validate_source.mjs my_source.json
```
兼容旧命令:
```bash
python scripts/analyze_with_playwright.py https://novel-site.com --manual-login
python scripts/test_rules.py my_source.json
python scripts/validate_source.py my_source.json
```
推荐执行顺序:
1. 先判断是否需要登录
2. 输出网站可生成性评估
3. 再分析搜索、详情、目录、正文
4. 最后生成和验证书源
## 脚本说明
### `analyze_with_playwright.mjs`
- 打开真实浏览器分析页面
- 可通过 `--manual-login` 让人类先完成登录
- 记录登录相关元素、搜索入口、候选结果区块和部分网络请求
- 适合需要登录态、动态内容或接口观察的站点
### `validate_source.mjs`
- 验证必填字段
- 验证常见字段类型
- 检查基础规则组结构
- 输出错误和警告,适合做结构体检
### `test_rules.mjs`
- 审计规则是否仍是占位文案
- 标记 JS/正则类高风险字段
- 预览 `searchUrl` 变量替换结果
- 不声称能完整执行 Legado 规则
### `generate_template.mjs`
- 支持交互式生成模板
- 支持基于 `analysis.json` 生成模板
- 默认禁用发现功能
- 可填写登录 URL
## 调试建议
- 先看真实页面和真实请求,再看脚本输出
- 脚本失败时先判断是脚本问题、环境问题还是站点行为变化
- 如果脚本结论和页面真实表现冲突,应以页面和接口证据为准
- 登录前后页面结构不同的站点,必须分别检查搜索、详情、目录和正文
- 评估结论为 `需登录后再评估` 或 `不建议生成` 时,继续生成必须明确标记为高风险
## 测试
```bash
node --test tests/book_source_tools.test.mjs
```