# 盘聚 **Repository Path**: deepin20/PanBridge ## Basic Information - **Project Name**: 盘聚 - **Description**: 盘聚 (PanBridge)是一个面向 Linux 桌面的网盘聚合工具,基于Python + PyQt5 + QtWebEngine开发。它通过“多标签页 + 独立会话隔离”的方式,将阿里云盘、百度网盘、115、天翼云盘、夸克、123 云盘等国内主流网盘整合到同一个图形界面中,无需开放 API,不依赖第三方接口,纯粹基于 WebView 套壳实现。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-10 - **Last Updated**: 2026-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 盘聚 (PanBridge) **盘聚 (PanBridge)** 是一个面向 Linux 桌面的网盘聚合工具,基于 **Python + PyQt5 + QtWebEngine** 开发。它通过“多标签页 + 独立会话隔离”的方式,将阿里云盘、百度网盘、115、天翼云盘、夸克、123 云盘等国内主流网盘整合到同一个图形界面中,无需开放 API,不依赖第三方接口,纯粹基于 WebView 套壳实现。 --- ## 一、项目定位 - **目标用户**:Linux 桌面用户(尤其是 Gnome/KDE 环境)、需要同时管理多个网盘账号的用户、希望将网盘操作“浏览器化”的极客。 - **核心价值**:解决 Linux 下网盘客户端缺失、网页版多账号切换繁琐、下载大文件易卡死等痛点。 - **技术路线**:PyQt5 + QWebEngine(每个标签页独立 Profile 实现 Cookie/缓存隔离),下载任务通过 subprocess 调用系统 curl/wget 接管,避免 UI 卡顿。 --- ## 二、核心功能模块(已规划) | 模块 | 功能描述 | 状态 | | :--- | :--- | :--- | | **多网盘标签页** | 每个网盘独立标签页,支持同时登录同一网盘的多个账号(独立 Profile) | 设计完成 | | **懒加载机制** | 启动时仅加载当前可见标签页,其余显示占位图,点击后才加载,大幅提升启动速度 | 设计完成 | | **全局快捷跳转搜索** | 输入关键词后,根据当前网盘类型自动拼接搜索 URL(如 `pan.baidu.com/s?wd=关键词`),稳定可靠 | 设计完成 | | **下载任务接管** | 拦截 WebView 下载事件,调用系统 curl/wget 后台下载,界面不卡顿 | 设计完成 | | **下载队列管理** | 底部 QListWidget 展示任务列表(文件名、大小、速度、进度条、暂停/继续/取消) | 设计完成 | | **UA 切换** | 支持 Windows Chrome / iPad(触屏版更省资源)两套 User-Agent | 设计完成 | | **暗色模式** | 仅修改主框架 QSS,不干扰网页验证码显示 | 设计完成 | | **会话恢复** | 关闭时保存标签页 URL 列表,下次启动自动恢复(仅加载第一个) | 规划中 | | **系统通知** | 下载完成时调用 `notify-send`(Wayland 兼容),替代不可靠的托盘通知 | 规划中 | --- ## 三、图形界面布局(修正版) ```text ┌────────────────────────────────────────────────────────────────────────────────────┐ │ [≡ 菜单] 盘聚 PanBridge [─][□][X] │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌─────────┐ ┌─────┐ ┌───┐ │ │ │ 📁阿里 │ │ 📁百度 │ │ 📁115 │ │ 📁天翼 │ │ 📁夸克 │ │ 📁123 │ │ 🔍搜索.. │ │ UA▼│ │ 🌙 │ │ ← 固定顶部工具栏 │ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └─────────┘ └─────┘ └───┘ │ │ ↑ 点击一律新建标签页(不区分左右键) │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ █████████████████████████████████████████████████████████████████████████████ │ │ █ 标签1:阿里云盘 █ 标签2:百度网盘 █ + (新建) █ │ ← 标签栏(仅此处右键有效) │ █████████████████████████████████████████████████████████████████████████████ │ │ █ █ │ │ █ [ 当前选中标签页的 WebView 渲染区域 ] █ │ │ █ █ │ │ █ (未激活的标签页仅显示空白占位,点击后才加载) █ │ ← 懒加载区域 │ █ █ │ │ █ █ │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ 📥 下载任务 (点击折叠/展开) [清空已完成]│ ← 底部可折叠 Dock 栏 │ ┌────────────────────────────────────────────────────────────────────────────────┐ │ │ │ ┌─────────────┬────────────┬────────────┬─────────────────┬───────────────┐ │ │ │ │ │ 文件名 │ 总大小 │ 当前速度 │ 进度条 │ 操作 │ │ │ │ │ ├─────────────┼────────────┼────────────┼─────────────────┼───────────────┤ │ │ │ │ │ 📄 archive.zip│ 2.1 GB │ 1.8 MB/s │ ██████░░░░ 60% │ [⏸] [✕] │ │ │ ← QListWidget 自定义 Item │ │ │ 📄 report.pdf │ 15.2 MB │ 已完成 │ ██████████ 100% │ [📂] │ │ │ │ │ └─────────────┴────────────┴────────────┴─────────────────┴───────────────┘ │ │ │ └────────────────────────────────────────────────────────────────────────────────┘ │ │ 下载中: 1个 已完成: 3个 总速度: 1.8 MB/s │ └────────────────────────────────────────────────────────────────────────────────────┘ ``` --- ## 四、技术栈与依赖 | 组件 | 技术选型 | 说明 | | :--- | :--- | :--- | | **GUI 框架** | PyQt5 | Linux 下最稳定成熟的 Qt 绑定 | | **Web 引擎** | PyQtWebEngine | Chromium 内核,支持 Cookie/缓存隔离 | | **下载核心** | subprocess + curl/wget | 系统自带,可靠且资源占用低 | | **配置文件** | QSettings / SQLite | 保存会话、下载历史、偏好设置 | | **通知机制** | notify-send (subprocess) | Wayland 下比 QSystemTrayIcon 更稳定 | | **Python 版本** | 3.8+ | 兼容主流 Linux 发行版 | --- ## 五、开发路线图 | 阶段 | 内容 | 预估工时 | | :--- | :--- | :--- | | **P0 基础框架** | 主窗口布局、顶部工具栏、多标签页容器、独立 Profile 隔离 | 3 天 | | **P1 核心交互** | 网盘图标新建标签、懒加载占位、下载事件接管、底部下载列表 | 5 天 | | **P2 体验增强** | 全局快捷跳转搜索、UA 切换、暗色模式、下载进度实时更新 | 3 天 | | **P3 高级特性** | 会话恢复、系统通知、设置对话框、快捷键绑定 | 3 天 | | **测试与打包** | Ubuntu 22.04/24.04 测试、PyInstaller 打包为 .deb / AppImage | 2 天 | --- ## 六、优势与边界 ### ✅ 优势 - 无需任何网盘 API,完全依赖网页端,永不担心接口变动 - 每个标签页独立会话,同一网盘多账号同时在线(如两个百度号) - 下载任务完全由系统接管,不卡 GUI,支持断点续传 - Linux 原生适配,轻量级(内存占用约 150-300MB) ### ❌ 明确不做 - 不解析 DOM / 不爬数据(脆弱且易被封) - 不提供文件列表自动刮削(不是媒体中心) - 不强行暗色化网页(防止破坏验证码) - 不依赖 Docker / 额外服务(纯桌面客户端) --- ## 七、开源与许可证(建议) - **开源协议**:GPL v3(保证代码开放,且衍生项目也需开源) - **代码仓库**:GitHub / Gitee 同步托管 - **项目代号**:`panbridge` - **官网域名建议**:`panbridge.dev` 或 `panbridge.cn`(若未来备案) --- ## 八、安装与打包 ### 从源码运行 ```bash pip install -r requirements.txt # 或系统包: sudo apt install python3-pyqt5 python3-pyqt5.qtwebengine ./run.sh # 或 python3 -m panbridge ``` ### 构建 .deb 安装包 ```bash ./packaging/build_deb.sh # 产出 dist/panbridge_<版本>_all.deb ``` 安装 / 卸载: ```bash sudo apt install ./dist/panbridge_*.deb # 或 sudo dpkg -i sudo apt remove panbridge ``` 包内容:应用源码安装到 `/usr/share/panbridge`,命令行入口 `panbridge`, 桌面菜单项 + SVG 图标,自动注册到应用列表。启动器内置依赖自检, 缺少 PyQt5 时给出明确的安装指引而不是抛 Traceback。 ### 打包说明 - 采用"源码 deb"方案:依赖系统 python3 + PyQt5(`Recommends` 级依赖, 安装时 apt 会自动拉取),体积仅 ~20KB,规避 PyInstaller 打包 QtWebEngine 的各种坑; - 使用 pyenv 等自有 Python 环境的用户,pip 安装依赖后同样可以直接使用。 ---