Skip to content

Commit 9acd2b8

Browse files
committed
docs: 全面优化与修正项目文档
1 parent e50f875 commit 9acd2b8

File tree

2 files changed

+23
-43
lines changed

2 files changed

+23
-43
lines changed

README.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,10 @@
4242
## ✨ 项目特性
4343

4444
- **优雅的图形用户界面 (GUI)**: 提供一个现代化、直观的图形界面,让搜索、选择、同步的全过程一目了然。所有交互(如处理重复项、翻译新标签)都在可视化的对话框中完成,操作体验流畅。
45-
- **双模式操作:GUICLI**:
45+
- **多模式操作:GUICLI 与批量处理**:
4646
- **GUI 模式 (推荐)**: 为绝大多数用户提供开箱即用的图形化体验。
4747
- **CLI 模式**: 保留了功能完整的命令行界面,适合高级用户或自动化脚本集成。
48+
- **批量模式**: 提供独立的批量处理工具,用于定期维护和刷新数据库。
4849
- **多源数据聚合**: 同时从 DLsite, Fanza, GGBases, Bangumi 等多个权威平台获取游戏、品牌和角色信息。
4950
- **全周期信息同步**: 覆盖从游戏基本信息、发售日期、价格,到剧本、原画、声优、标签等全方位数据。
5051
- **智能数据处理**:
@@ -92,17 +93,30 @@ python main.py
9293
- **手动模式**: 在关键词后追加 ` -m`,这会在需要时让你手动选择,而不是自动选择最优结果。
9394
- **退出**: 输入 `q` 或直接按 Ctrl+C。
9495

96+
### 方式三:使用批量更新工具
97+
98+
对于需要定期维护、保持数据与最新信息同步的用户,项目提供了一个强大的批量更新工具 `batch_updater.py`
99+
100+
```bash
101+
python batch_updater.py
102+
```
103+
104+
**主要用途**:
105+
- 遍历你的 Notion 数据库(可选择游戏、厂商或角色库)。
106+
- 从 Bangumi 重新获取每个条目的最新数据。
107+
- 将最新信息更新回 Notion,用于批量刷新和补全数据。
108+
109+
> 💡 **架构说明**: 本项目之所以能支持多种操作模式,得益于其核心的 **“交互提供者” (Interaction Provider)** 设计模式。该模式将核心业务逻辑与用户界面完全解耦,为 GUI 和 CLI 提供了不同的交互实现,从而保证了代码的可维护性和未来的可扩展性。
110+
95111
## 🏗️ 技术架构
96112

97-
本项目最近经历了一次重大的架构重构,引入了 **交互提供者 (Interaction Provider)** 设计模式,将核心业务逻辑与用户界面完全解耦
113+
本项目的核心设计思想是将 **业务逻辑****用户界面** 分离
98114

99-
- **核心逻辑 (`core/`)**: 包含所有的数据抓取、处理和同步逻辑。这些模块是纯粹的业务层,不依赖于任何特定的UI实现。
100-
- **交互提供者 (`core/interaction.py`)**: 定义了一个抽象接口,用于处理所有需要用户输入的场景(例如,选择、确认、文本输入)。
101-
- **UI 实现**:
102-
- **GUI (`run_gui.py`, `utils/gui_bridge.py`)**: `GuiInteractionProvider` 实现了交互接口,通过 Qt 信号和槽机制将后台逻辑的请求转化为图形化的对话框。
103-
- **CLI (`main.py`)**: 命令行界面通过一个简单的 `CliInteractionProvider` 实现,将交互请求转化为控制台的 `input()` 提示。
115+
- **核心逻辑 (`core/`)**: 包含所有的数据抓取、处理和同步逻辑,与具体 UI 实现无关。
116+
- **交互接口 (`core/interaction.py`)**: 定义了业务逻辑与 UI 之间通信的抽象“契约”。
117+
- **UI 实现 (GUI/CLI)**: 分别实现了交互接口,将后台请求转化为用户看得见的图形界面或命令行提示。
104118

105-
这种架构使得项目具有极高的可维护性和可扩展性。未来可以轻松地为其添加新的前端,例如 Web 界面,而无需改动任何核心业务代码
119+
这种解耦设计使得项目可以轻松地适配未来可能出现的新界面(如 Web),而无需改动核心代码。更详细的架构说明,请参考项目内的 `GEMINI.md` 系列文档
106120

107121
## 📂 项目结构
108122

@@ -139,7 +153,7 @@ Otaku-Sync/
139153
- **PySide6**: 用于构建图形用户界面。
140154
- **Notion API**: 用于与 Notion 数据库进行交互。
141155
- **Selenium**: 用于模拟浏览器操作,抓取动态加载的网页内容。
142-
- **aiohttp**: 用于执行异步 HTTP 请求。
156+
- **httpx**: 用于执行异步 HTTP 请求。
143157

144158
你可以在 `requirements.txt` 文件中查看完整的依赖列表。
145159

mapping/映射文件说明.md

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)