mirror of
https://github.com/Tthfyth/source.git
synced 2026-01-25 21:22:15 +08:00
5.5 KiB
5.5 KiB
书源调试器 (Legado Source Debugger)
一个用于调试和管理 Legado / 异次元 书源的桌面应用程序。
功能特性
- 多格式支持:同时支持 Legado 书源和异次元图源
- 格式互转:支持 Legado ↔ 异次元格式一键转换,转换后可在两种阅读器中使用
- 可视化编辑:提供文本、表格、可视化三种编辑模式
- 规则调试:支持搜索、发现、详情、目录、正文的完整调试流程
- AI 辅助:集成 AI 助手,帮助分析和修复书源规则
- 实时预览:调试结果实时可视化展示
安装
# 克隆项目
git clone <repository-url>
cd source
# 安装依赖
pnpm install
开发
# 启动开发环境
pnpm start
打包
# 打包应用
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 测试正文内容解析
测试流程
- 选择测试模式
- 输入测试参数(关键词或 URL)
- 点击「测试」按钮
- 查看结果:可视化 / 解析结果 / 原始响应
快捷操作
- 搜索结果点击书籍 → 自动跳转详情测试
- 详情页点击「查看目录」→ 自动跳转目录测试
- 目录点击章节 → 自动跳转正文测试
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