feat: 增加下载任务中心与断点续传

This commit is contained in:
lofyer
2026-08-05 15:25:26 +08:00
parent f72c26642f
commit cb7b020dc8
20 changed files with 1094 additions and 70 deletions
+51 -1
View File
@@ -19,7 +19,7 @@ npm run portable
输出目录固定为 `dist/PeopleLib-windows-x64/`,不随版本号变化,重复构建会保留其中的 `data/` 目录。构建前需退出该目录下正在运行的 `PeopleLib.exe`,否则会因文件占用而中止。
发布时将完整的 `dist/PeopleLib-windows-x64/` 目录压缩,上传到 GitHub Release,并使用 `v1.3.0` 形式的版本标签。应用根据最新 Release 标签判断是否需要更新。
发布时将完整的 `dist/PeopleLib-windows-x64/` 目录压缩,上传到 GitHub Release,并使用 `v2.0.0` 形式的版本标签。应用根据最新 Release 标签判断是否需要更新。
### macOSApple Silicon
@@ -45,6 +45,56 @@ xattr -dr com.apple.quarantine /Applications/PeopleLib.app
图标 `icons/dist/book-ai-*.icns` 已随仓库提供。源 PNG 变更后用 `npm run icons:icns` 重新生成,该脚本在任意平台都能运行,不依赖 macOS 的 `iconutil`
## 固定构建变体
PeopleLib 采用固定构建变体,不使用远程开关在应用发布后改变功能范围:
| 构建 | 定位 | 功能范围 |
|---|---|---|
| 桌面完整版 | Windows、macOS | 多源检索、下载与任务中心、数据源账号、代理、本地书库、阅读和笔记 |
| 移动阅读版 | iPadOS、Android | 本地导入、书库、阅读、笔记、书签和批注 |
移动阅读版固定关闭以下能力:
```js
{
remoteSearch: false,
remoteDownload: false,
sourceAccounts: false,
proxy: false
}
```
这些能力必须在构建时确定。移动端不展示相关入口、不注册对应桥接 API、不发起数据源请求,也不能通过服务端配置重新开启。桌面端继续保留完整功能。
移动端不能直接复用 Electron 包,需要使用独立的移动端外壳。下载、文件系统、安全存储和阅读文件访问均应通过 iPadOS/Android 原生桥接实现。首个移动版本只提供本地阅读能力;从系统文件选择器、分享面板或用户自行管理的云盘导入文件,不提供应用内在线检索和下载。
移动阅读版必须由专用脚本生成,不能依赖开发者手工删除页面或模块。计划提供以下固定入口:
```bash
npm run build:android
npm run build:ios
```
两个命令应调用同一套移动构建脚本,并把平台与固定变体显式传入,例如:
```bash
node build-mobile.js --platform android --variant reader-only
node build-mobile.js --platform ios --variant reader-only
```
`build-mobile.js` 必须完成:
1. 校验变体只能是 `reader-only`,拒绝从环境变量或远程配置开启受限能力。
2. 生成移动端能力清单,并在编译前固定关闭检索、下载、数据源账号和代理。
3. 使用移动端入口组装资源,不注册桌面端 IPC,不复制在线数据源模块。
4. 调用 Android 或 iOS 原生工程构建工具,并把产物输出到固定的 `dist/PeopleLib-android/``dist/PeopleLib-ios/`
5. 对最终产物运行自动化检查,确认不存在检索、下载、数据源账号和代理入口。
Android 构建可以在 Windows、macOS 或 Linux 上执行;iOS/iPadOS 构建依赖 Xcode、签名与 Apple SDK,只能在 macOS 上执行。
当前仓库尚未包含 `build-mobile.js` 与移动端原生工程,所以上述命令是必须补齐的目标构建入口,目前不能生成移动安装包。
## 配置
### 代理