Files
legado-source-debugger/README.md
2025-12-08 17:14:12 +08:00

201 lines
5.5 KiB
Markdown
Raw Permalink 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.
# 书源调试器 (Legado Source Debugger)
一个用于调试和管理 Legado / 异次元 书源的桌面应用程序。
## 功能特性
- **多格式支持**:同时支持 Legado 书源和异次元图源
- **格式互转**:支持 Legado ↔ 异次元格式一键转换,转换后可在两种阅读器中使用
- **可视化编辑**:提供文本、表格、可视化三种编辑模式
- **规则调试**:支持搜索、发现、详情、目录、正文的完整调试流程
- **AI 辅助**:集成 AI 助手,帮助分析和修复书源规则
- **实时预览**:调试结果实时可视化展示
## 安装
```bash
# 克隆项目
git clone <repository-url>
cd source
# 安装依赖
pnpm install
```
## 开发
```bash
# 启动开发环境
pnpm start
```
## 打包
```bash
# 打包应用
pnpm run package
```
## 使用指南
### 1. 书源管理
**导入书源**
- 点击左侧边栏底部的 📂 按钮导入 JSON 格式的书源文件
- 支持单个书源或书源数组
**新建书源**
- 点击左侧边栏底部的 按钮创建新书源
- 支持创建 Legado 书源或异次元图源
**保存书源**
- `Ctrl+S`:保存当前编辑的书源
- 点击「全部保存」按钮:保存所有书源到文件
### 2. 图源格式转换
支持 Legado 书源和异次元图源之间的双向转换:
**使用方法**
- 点击工具栏的 🔄 转换按钮
- 自动检测当前格式并转换为另一种格式
**转换规则**
| Legado 字段 | 异次元字段 |
|------------|-----------|
| `searchUrl` | `ruleSearchUrl` |
| `ruleSearch.bookList` | `ruleSearchList` |
| `ruleSearch.name` | `ruleSearchName` |
| `ruleSearch.bookUrl` | `ruleSearchNoteUrl` |
| `ruleBookInfo.name` | `ruleBookInfoName` |
| `ruleToc.chapterList` | `ruleChapterList` |
| `ruleContent.content` | `ruleContentUrlContent` |
**特性**
- 转换是幂等的:多次转换结果一致
- 保留 `@Header:{}` 后缀等特殊语法
- 自动转换占位符:`{{key}}``searchKey`
### 3. 编辑模式
**文本视图**
- 直接编辑书源 JSON 代码
- 支持 `Ctrl+B` 格式化代码
- 悬停字段名显示帮助文档
**表格视图**
- 表单化编辑书源字段
- 按分类组织:基本信息、搜索规则、发现规则、详情规则、目录规则、正文规则
**可视化视图**
- 流程图展示书源解析流程
- 规则树展示所有配置项及状态
- 快速查看规则类型JS/JSON/XPath/CSS
### 4. 规则测试器
**测试模式**
- **搜索**:输入关键词测试搜索功能
- **发现**:选择发现分类测试发现功能
- **详情**:输入书籍 URL 测试详情解析
- **目录**:输入目录 URL 测试章节列表解析
- **正文**:输入章节 URL 测试正文内容解析
**测试流程**
1. 选择测试模式
2. 输入测试参数(关键词或 URL
3. 点击「测试」按钮
4. 查看结果:可视化 / 解析结果 / 原始响应
**快捷操作**
- 搜索结果点击书籍 → 自动跳转详情测试
- 详情页点击「查看目录」→ 自动跳转目录测试
- 目录点击章节 → 自动跳转正文测试
### 5. 调试控制台
- 查看请求日志、解析日志、错误信息
- 支持按类别过滤日志
- 支持清空日志
### 6. AI 助手
- 开启「AI」开关后测试结果会附加到 AI 对话
- AI 可以帮助分析规则问题并提供修复建议
- 支持配置多个 AI 服务商GitHub Copilot、DeepSeek、Kimi 等)
- 输入网址可自动分析页面结构生成规则
## 支持的规则语法
### Legado 书源
| 规则类型 | 语法示例 |
|---------|---------|
| JSONPath | `$.data.list[*]` |
| CSS 选择器 | `div.book-item` |
| XPath | `//div[@class='item']` |
| 正则表达式 | `:regex:pattern` |
| JavaScript | `@js:code``<js>code</js>` |
| 模板变量 | `{{key}}`, `{{page}}` |
### 异次元图源
| 规则类型 | 语法示例 |
|---------|---------|
| JSONPath | `$.data[*]` |
| CSS/JSoup | `div.item@text` |
| 正则 | `regex:pattern` |
| JavaScript | `js:code` |
## 项目结构
```
src/
├── main/ # Electron 主进程
│ ├── debug/ # 书源调试核心
│ │ ├── source-debugger.ts # Legado 调试器
│ │ ├── yiciyuan-debugger.ts # 异次元调试器
│ │ ├── rule-parser.ts # 规则解析器
│ │ ├── analyze-url.ts # URL 分析器
│ │ ├── http-client.ts # HTTP 请求客户端
│ │ ├── cache-manager.ts # 缓存管理
│ │ └── cookie-manager.ts # Cookie 管理
│ ├── ai/ # AI 服务集成
│ └── services/ # 服务层
│ └── puppeteer-service.ts # Puppeteer 浏览器服务
├── renderer/ # React 渲染进程
│ ├── components/ # UI 组件
│ ├── stores/ # 状态管理
│ ├── utils/ # 工具函数
│ │ └── sourceConverter.ts # 图源格式转换器
│ └── types/ # 类型定义
```
## 快捷键
| 快捷键 | 功能 |
|-------|------|
| `Ctrl+S` | 保存当前书源 |
| `Ctrl+B` | 格式化 JSON |
| `Ctrl+O` | 打开文件 |
| `Enter` | 执行测试(在输入框中) |
## 技术栈
- **框架**Electron + React + TypeScript
- **UI 库**Mantine UI
- **状态管理**Zustand
- **解析库**Cheerio, JSONPath-Plus
## 开源声明
本项目为**完全开源项目**,遵循 MIT 许可证。
- 源代码完全公开,可自由查看、修改和分发
- 欢迎提交 Issue 和 Pull Request
- 可用于个人学习、商业项目等任何用途
## License
MIT