[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81818":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":27,"readmeContent":28,"aiSummary":29,"trendingCount":16,"starSnapshotCount":16,"syncStatus":30,"lastSyncTime":31,"discoverSource":32},81818,"self_pixiv_downloader","2921323707\u002Fself_pixiv_downloader","2921323707","pixiv 下载工具链，基于rust重建，支持智能检索，批量下载","",null,"Rust",53,3,18,5,0,1,21,41.41,false,"main",[23,24,25,26],"application","pixiv-downloader","rust","tauri-v2","2026-06-12 04:01:35","\u003Cp align=\"center\">\n  \u003Cimg src=\".\u002Fstatic\u002FinnerFiles\u002Fapp-icon.png\" alt=\"Pixiv Platform logo\" width=\"128\" \u002F>\n\u003C\u002Fp>\n\n\u003Ch1 align=\"center\">Pixiv Platform\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  本地优先的 Pixiv 下载、索引、图库与智能检索工作台，支持 Web 工作台、Windows 桌面端与 macOS 桌面端源码路径。\n\u003C\u002Fp>\n\n## 功能概览\n\n- Pixiv 单作品下载：通过作品 ID 下载并写入本地目录。\n- 作者批量下载：按作者 UID 发现作品并创建批量任务。\n- 收藏批量下载：读取当前用户收藏并创建批量任务。\n- Smart Retrieval：用 DeepSeek 将自然语言需求解析为 Pixiv tags，再发起标签搜索下载。\n- 本地 SQLite 索引：保存图片、来源、标签、任务、任务项和任务日志。\n- Gallery：查看已下载作品，读取本地图片预览，支持单张和批量删除。\n- Tasks：查看任务状态、进度、任务项和日志。\n- Settings：配置 Pixiv cookie、DeepSeek key、下载目录、默认批量数量、R18 策略和主题。\n- Next.js 工作台：Home、Download、Tasks、Gallery、Settings 五个主要页面。\n- Windows 桌面端：Tauri \u002F NSIS `.exe` 安装包，内嵌启动现有 Rust 后端，`v1.2.0` 已手动验证。\n- macOS 桌面端：Tauri `.app` \u002F ad-hoc signed `.dmg` 源码路径保留，历史 `v1.1.1` 构建已验证。\n\n## 部分页面展示\n### 首页\n![](.\u002Fstatic\u002FdemoDisplay\u002Findex.png)\n\n### 智能检索批量下载\n![](.\u002Fstatic\u002FdemoDisplay\u002Fdownload.png)\n\n### 任务监控面板\n![](.\u002Fstatic\u002FdemoDisplay\u002FtaskReview.png)\n\n## 技术栈\n\n- Backend: Rust 2024, Axum, Tokio, rusqlite, reqwest\n- Frontend: Next.js 16, React 19, TypeScript\n- Storage: local filesystem + SQLite\n- AI provider: DeepSeek-compatible chat API\n\n## 目录结构\n\n```text\nsrc\u002Fbackend\u002F          Rust 后端、API、任务队列、Pixiv\u002FDeepSeek 客户端、SQLite 仓储\nsrc\u002Fbackend\u002Fsrc\u002Fapi\u002F  Axum routes、DTO\u002Fenvelope、handlers、runtime settings 和 queue worker glue\nsrc\u002Ffrontend\u002F         Next.js 前端工作台\ntauri-app\u002F            Tauri 桌面壳与打包配置，当前默认本地构建目标为 Windows NSIS\ndocs\u002F                 产品、架构、接口、测试和交付文档\ndocs\u002Fdesign\u002F          视觉主题参考与设计归档\ntests\u002F                单元、集成、阶段、smoke 和 opt-in live 测试脚本\nstatic\u002F               README 图片和展示素材\n```\n\n## 环境要求\n\n- Rust stable with Cargo\n- Node.js 20+ 和 npm\n- Windows 本地构建需要 Visual Studio 2022 Build Tools \u002F MSVC C++ linker\n- macOS 构建 `.dmg` 需要在 macOS 上执行，并使用 macOS 构建配置\n- 有效的 Pixiv `PHPSESSID` cookie，真实下载时需要\n- DeepSeek API key，只有 Smart Retrieval 解析或连接测试时需要\n\n小范围使用已打包桌面安装包的用户不需要安装 Rust、Cargo、Node、npm 或 TypeScript。\n\n## 快速启动\n\n### 1. 安装前端依赖\n\n```bash\ncd src\u002Ffrontend\nnpm install\n```\n\nWindows PowerShell 如遇到 `npm.ps1` 执行策略限制，使用 `npm.cmd install`。\n\n### 2. 启动后端\n\n后端默认监听 `127.0.0.1:3000`。Web \u002F 后端独立运行和桌面端默认共享同一套本地目录：\n\n```text\n~\u002FDownloads\u002FPixiv Platform\u002F\n~\u002FDownloads\u002FPixiv Platform\u002Fpixiv_platform.sqlite3\n```\n\n```bash\ncd src\u002Fbackend\ncargo run --bin server\n```\n\nWindows 本地快速启动：\n\n```powershell\npowershell -ExecutionPolicy Bypass -File .\\tools\\dev_backend_windows.ps1\n```\n\n可选环境变量：\n\n```bash\nPIXIV_PLATFORM_BIND=127.0.0.1:3000\nPIXIV_DOWNLOAD_ROOT=\u002Fabsolute\u002Fpath\u002Fto\u002Foutput\nPIXIV_PLATFORM_DB_PATH=\u002Fabsolute\u002Fpath\u002Fto\u002Fpixiv_platform.sqlite3\nPIXIV_PHPSESSID=your_pixiv_cookie\nDEEPSEEK_API_KEY=your_deepseek_key\n```\n\n也可以在前端 Settings 页面保存 `pixiv_cookie`、`deepseek_api_key` 和\n`download_base_path`。secret 会被后端遮罩返回，不会在 API 响应中明文回显。\n\n### 3. 启动前端\n\n前端默认监听 `127.0.0.1:3001`。\n\n```bash\ncd src\u002Ffrontend\nnpm run dev\n```\n\nWindows 本地快速启动：\n\n```powershell\npowershell -ExecutionPolicy Bypass -File .\\tools\\dev_frontend_windows.ps1\n```\n\n前端 API 代理默认指向 `http:\u002F\u002F127.0.0.1:3000`。如果后端使用了其它端口：\n\n```bash\nPIXIV_BACKEND_URL=http:\u002F\u002F127.0.0.1:3002 npm run dev\n```\n\n打开：\n\n```text\nhttp:\u002F\u002F127.0.0.1:3001\n```\n\n### 4. 使用流程\n\n1. 进入 Settings，保存 Pixiv cookie。\n2. 可选：保存下载目录，默认值为 `~\u002FDownloads\u002FPixiv Platform`。\n3. 进入 Download，选择 Single、Author、Bookmarks 或 Smart。\n4. 提交下载任务后进入 Tasks 查看进度。\n5. 进入 Gallery 查看本地图片预览和详情。\n\n## 生产构建\n\n### 后端 release 构建\n\n```bash\ncd src\u002Fbackend\ncargo build --release\n```\n\n构建产物：\n\n```text\nsrc\u002Fbackend\u002Ftarget\u002Frelease\u002Fserver\nsrc\u002Fbackend\u002Ftarget\u002Frelease\u002Flive_single\n```\n\n运行 release 后端：\n\n```bash\nPIXIV_PLATFORM_BIND=127.0.0.1:3000 \\\nPIXIV_DOWNLOAD_ROOT=\u002Fabsolute\u002Fpath\u002Fto\u002Foutput \\\nPIXIV_PLATFORM_DB_PATH=\u002Fabsolute\u002Fpath\u002Fto\u002Fpixiv_platform.sqlite3 \\\nsrc\u002Fbackend\u002Ftarget\u002Frelease\u002Fserver\n```\n\n### 前端生产构建\n\n```bash\ncd src\u002Ffrontend\nnpm run build\n```\n\n### Windows 桌面端构建\n\n当前仓库默认 Tauri 构建目标为 Windows NSIS 安装包。Tauri 桌面端复用现有\n`src\u002Ffrontend` 和 `src\u002Fbackend`，不会复制业务代码。Tauri 启动时会在进程内启动 Axum\n后端，并为前端注入运行时 API 地址。\n\n```powershell\ncd tauri-app\nnpm.cmd install\nnpm.cmd run build\n```\n\n构建产物：\n\n```text\ntauri-app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fpixiv_platform_tauri_app.exe\ntauri-app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fnsis\u002FPixiv Platform_1.2.0_x64-setup.exe\n```\n\n最新 Windows 本地锚点（2026-05-27）：用户手动确认 Web 正常、Windows Tauri App 正常；\nSettings -> Pixiv 连接 -> Refresh 可正常弹出 Pixiv 登录窗口并完成刷新；`npm.cmd run build`\n成功生成 `v1.2.0` NSIS 安装包。\n\n### macOS 桌面端构建\n\nv1.1.1 已作为成熟交付第一版本发布。Tauri macOS 桌面端复用现有 `src\u002Ffrontend` 和 `src\u002Fbackend`，\n不会复制业务代码。Tauri 启动时会在进程内启动 Axum 后端，并为前端注入运行时 API 地址。\n\n注意：当前 `tauri-app\u002Fsrc-tauri\u002Ftauri.conf.json` 的默认构建命令和 bundle target 已切到\nWindows \u002F NSIS。macOS 代码分支仍保留，但要重新构建 `.app` \u002F `.dmg`，需要在 macOS 上把\n前端导出命令切回 `NEXT_OUTPUT_EXPORT=1 npm --prefix ..\u002Fsrc\u002Ffrontend run build`，并把\n`bundle.targets` 切回 `[\"app\", \"dmg\"]`，或使用后续新增的 macOS 专用 Tauri 配置。\n\n```bash\ncd tauri-app\nnpm install\nnpm run build\n```\n\n构建产物：\n\n```text\ntauri-app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fmacos\u002FPixiv Platform.app\ntauri-app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fdmg\u002FPixiv Platform_1.1.0_aarch64.dmg\n```\n\n说明：当前 Tauri 配置默认面向 Windows，并已把 Windows 包版本同步为 `1.2.0`；macOS 历史\nrelease 锚点仍为 `v1.1.1`。\n\n当前 `.dmg` 为 ad-hoc signed、未 Developer ID 签名、未公证版本，可用于 GitHub Release\n小范围分发。首次打开时，macOS Gatekeeper 可能拦截，需要用户在系统安全设置中手动允许。\n\n本机验证命令：\n\n```bash\ncodesign --verify --deep --strict --verbose=2 \"tauri-app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fmacos\u002FPixiv Platform.app\"\nhdiutil verify \"tauri-app\u002Fsrc-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002Fdmg\u002FPixiv Platform_1.1.0_aarch64.dmg\"\n```\n\n最新本地验证：`.\u002Ftests\u002Frun_local.sh` 通过，Tauri `.app` codesign 校验通过，`.dmg` checksum 校验通过。\n\n### 桌面包源码关系\n\nWindows `.exe` \u002F NSIS installer 与 macOS `.app` \u002F `.dmg` 不是两套应用源码。\n\n```text\nsrc\u002Ffrontend\u002F                唯一前端源码，Next.js 静态导出后进入 Tauri bundle\nsrc\u002Fbackend\u002F                 唯一 Rust 后端源码，被 tauri-app 通过 Cargo path dependency 复用\ntauri-app\u002Fsrc-tauri\u002Fsrc\u002F     唯一 Tauri 桌面壳源码，少量代码用 cfg(target_os) 分支适配系统差异\ntauri-app\u002Fsrc-tauri\u002Ftarget\u002F  本地构建产物目录，不是源码\n```\n\n平台差异主要存在于打包目标、系统文件夹选择器、日志路径和安装包格式：\n\n- Windows：`bundle\u002Fnsis\u002FPixiv Platform_1.2.0_x64-setup.exe`\n- macOS：`bundle\u002Fdmg\u002FPixiv Platform_1.1.0_aarch64.dmg`\n\n## 测试\n\n默认本地质量门：\n\n```bash\n.\u002Ftests\u002Frun_local.sh\n```\n\n该脚本会运行后端单测、SQLite 集成、API smoke、阶段脚本和前端 typecheck\u002Fbuild。\n当前基线为 86 个后端单测通过，完整本地质量门通过。\n\n真实 Pixiv E2E 是 opt-in 测试，需要运行时提供 cookie：\n\n```bash\nPIXIV_PHPSESSID=your_pixiv_cookie .\u002Ftests\u002Fe2e\u002Flive_single_download.sh\n```\n\n最近一次发布验证 shell 未设置 `PIXIV_PHPSESSID`，因此未运行 live Pixiv E2E。\n不要把 Pixiv cookie、DeepSeek API key 或其它 secret 写入仓库文件。\n\n## API 入口\n\n常用端点：\n\n- `POST \u002Fapi\u002Fdownload\u002Fsingle`\n- `POST \u002Fapi\u002Fdownloads\u002Fauthor`\n- `POST \u002Fapi\u002Fdownloads\u002Fbookmarks`\n- `POST \u002Fapi\u002Fsmart\u002Fparse`\n- `POST \u002Fapi\u002Fsmart\u002Fdownload`\n- `GET \u002Fapi\u002Ftasks`\n- `GET \u002Fapi\u002Ftasks\u002F{task_id}`\n- `GET \u002Fapi\u002Fimages`\n- `GET \u002Fapi\u002Fimages\u002F{image_id}`\n- `GET \u002Fapi\u002Fimages\u002F{image_id}\u002Ffile`\n- `DELETE \u002Fapi\u002Fimages\u002F{image_id}`\n- `POST \u002Fapi\u002Fimages\u002Fdelete-batch`\n- `GET \u002Fapi\u002Fsettings`\n- `PUT \u002Fapi\u002Fsettings\u002F{key}`\n- `POST \u002Fapi\u002Fsettings\u002Ftest\u002Fpixiv`\n- `POST \u002Fapi\u002Fsettings\u002Ftest\u002Fdeepseek`\n\n完整接口说明见 `docs\u002Fspecs\u002Fapi-contract.md`。\n\n## 当前边界\n\nv1.2.0 已完成稳定的本地下载、索引、Web 工作台和 Windows Tauri 桌面端交付闭环；macOS\n历史成熟交付锚点为 v1.1.1。\n以下能力仍属于后续 v1.x \u002F v2 演进方向：\n\n- 缩略图缓存和大图库性能优化\n- Top10 \u002F Random discovery modes\n- 任务取消、重试和更细 worker 诊断\n- 图片编辑、地图视图和更复杂的图库组织\n- 本地语义检索、相似图聚类和向量索引\n- macOS Developer ID 签名、公证和自动更新\n\n## 文档入口\n\n- `docs\u002FCONTEXT_HANDOFF.md`：新会话恢复项目上下文\n- `docs\u002Fprogress.md`：当前阶段、完成项和验证基线\n- `docs\u002FDOCUMENT_MAP.md`：文档地图\n- `docs\u002Freleases\u002Fv1.2.0.md`：v1.2.0 Release notes\n- `docs\u002Fspecs\u002Farchitecture.md`：架构说明\n- `docs\u002Fspecs\u002Fapi-contract.md`：API 合约\n- `docs\u002Fspecs\u002Ftesting-strategy.md`：测试策略\n- `tauri-app\u002Fdocs\u002Fprogress.md`：桌面端进度与验证记录\n- `tauri-app\u002Fdocs\u002Fnext-session-prompt.md`：下一轮新会话提示词\n\n## 安全说明\n\n- secret 只允许运行时配置或通过 Settings 保存到本地 SQLite。\n- API 返回 Settings 时会遮罩 secret。\n- live 测试必须手动 opt-in。\n- Web \u002F 后端独立运行和桌面端默认共享 `~\u002FDownloads\u002FPixiv Platform\u002F`。\n- 默认 SQLite 路径为 `~\u002FDownloads\u002FPixiv Platform\u002Fpixiv_platform.sqlite3`。\n- 可通过 Settings 或环境变量改为其它绝对路径。\n","这是一个基于 Rust 重建的 Pixiv 下载工具链，支持智能检索和批量下载。项目的核心功能包括通过作品 ID 或作者 UID 进行单个或批量下载、收藏批量下载以及利用 DeepSeek API 实现自然语言需求解析为 Pixiv 标签进行搜索下载。此外，它还提供了本地 SQLite 索引管理和图库浏览功能。前端采用 Next.js 构建，支持 Web 和 Tauri 桌面端应用（Windows 和 macOS）。此工具适合需要高效管理和下载大量 Pixiv 图片的用户，特别适用于艺术家、收藏家或研究者等场景。",2,"2026-06-11 04:06:50","CREATED_QUERY"]