# 115网盘客户端 **Repository Path**: deepin20/115-Desktop-Client ## Basic Information - **Project Name**: 115网盘客户端 - **Description**: 115网盘客户端:基于 Python + PyQt5 开发的第三方 115 网盘桌面客户端,提供轻量、高效、可定制的网盘管理体验。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-28 - **Last Updated**: 2026-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 115网盘客户端 (115 Desktop Client) [![Python](https://img.shields.io/badge/Python-3.7+-blue.svg)](https://www.python.org/) [![PyQt5](https://img.shields.io/badge/PyQt5-5.15+-green.svg)](https://riverbankcomputing.com/software/pyqt/) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) 基于 Python + PyQt5 开发的第三方 115 网盘桌面客户端,提供轻量、高效、可定制的网盘管理体验。 ![截图](https://via.placeholder.com/800x450?text=115+Desktop+Client+Screenshot) --- ## 📋 功能特性 ### 🔐 认证与账户 - **Cookie 登录**:手动粘贴 Cookie 快速登录 - **JSON 文件导入**:支持从浏览器导出的 Cookie 文件一键导入 - **多账号管理**:添加、切换、删除多个账号,账号信息本地加密存储 - **自动登录**:可选使用 Playwright 自动打开浏览器扫码登录 ### 📁 文件管理 - **双视图模式**:列表视图 / 网格视图(支持缩略图异步加载) - **面包屑导航**:点击路径任意层级快速跳转 - **本地过滤**:输入关键词实时过滤当前文件列表 - **在线搜索**:调用 115 搜索接口,全盘搜索文件 - **排序与分页**:按名称/大小/时间排序,每页 200 个文件,支持加载更多 - **文件类型图标**:根据扩展名显示不同图标 ### 📂 文件操作 - **重命名**:支持文件/文件夹重命名 - **删除**:移入回收站,可恢复或彻底删除 - **移动**:将文件/文件夹移动到其他目录(需输入目标 CID) - **复制**:复制文件/文件夹到其他目录 - **新建文件夹**:在当前目录创建文件夹 - **上传**:浏览器辅助上传(稳定可靠,绕过复杂分片协议) - **下载**:自动下载(非视频文件),支持进度条和取消 ### 🎬 预览与播放 - **图片预览**:JPG、PNG、GIF、BMP - **文本预览**:TXT、MD、JSON、PY、HTML、CSS、JS、XML - **视频播放**:双击视频自动打开浏览器网页版,支持在线播放和下载 - **音频播放**:MP3 等音频文件同样支持浏览器播放 ### 🗑️ 回收站管理 - 查看已删除文件列表 - 还原文件到原目录 - 彻底删除文件(不可恢复) ### ⚙️ 系统功能 - **系统托盘**:最小化到托盘,双击恢复,右键退出 - **设置窗口**:下载路径、预览大小限制、默认视图、缩略图开关/大小 - **状态栏**:显示文件总数、选中文件数量和总大小 - **跨平台**:支持 Linux、Windows、macOS(需 Python 环境) ### 🧩 扩展功能 - **离线下载**:支持磁力链接、ED2K、HTTP 链接,提交到 115 服务器 - **文件搜索**:按文件名关键词搜索 - **RSS 订阅**(预留) - **WebDAV 服务**(预留) - **磁力搜索引擎集成**(预留) --- ## 🚀 快速开始 ### 环境要求 - Python 3.7 或更高版本 - pip 包管理器 ### 安装步骤 1. **克隆项目** ```bash git clone https://github.com/yourusername/115-desktop.git cd 115-desktop ``` 2. **创建虚拟环境(推荐)** ```bash python -m venv venv source venv/bin/activate # Linux/macOS # 或 venv\Scripts\activate # Windows ``` 3. **安装依赖** ```bash pip install -r requirements.txt ``` 4. **安装 Playwright(可选,用于自动登录)** ```bash pip install playwright python -m playwright install chromium ``` 5. **运行程序** ```bash python main.py ``` ### 首次登录 程序启动后,点击 **「切换账号」**,在弹出的对话框中粘贴从浏览器复制的 115 网盘 Cookie 字符串。 **获取 Cookie 方法:** 1. 在 Chrome/Firefox 中登录 [115.com](https://115.com) 2. 按 `F12` 打开开发者工具 → 切换到 **网络(Network)** 标签 3. 刷新页面,点击任意请求(如 `https://115.com/`) 4. 在 **请求标头 (Request Headers)** 中找到 `Cookie:` 字段,复制其完整值 --- ## 📁 项目结构 ``` . ├── config/ # 配置文件与日志 │ ├── logger.py # 日志配置 │ └── settings.py # 应用设置管理 ├── core/ # 核心业务逻辑 │ ├── api/ # 115 API 封装 │ │ ├── cookie_manager.py # 基础 API(列表、重命名、删除、下载等) │ │ └── offline_download.py # 离线下载 API │ ├── auth/ # 认证与账户管理 │ │ └── session.py # 多账号会话管理 │ ├── services/ # 业务服务层(预留) │ └── utils/ # 工具函数(预留) ├── gui/ # 图形界面 │ ├── dialogs.py # 通用对话框 │ ├── models.py # 数据模型(代理模型) │ ├── workers.py # 后台线程(下载、上传、缩略图加载) │ ├── resources/ # 静态资源(图标、图片、样式) │ └── windows/ # 窗口与 Mixin │ ├── main_window.py # 主窗口 │ ├── mixins/ # 功能模块(分页、视频、托盘、文件操作等) │ ├── settings_window.py │ ├── trash_window.py │ ├── search_window.py │ └── account_manager.py ├── plugins/ # 扩展插件(预留) ├── tests/ # 单元测试 ├── workers/ # 独立工作线程(预留) ├── main.py # 程序入口 ├── run.sh # 启动脚本(Linux/macOS) ├── requirements.txt # 项目依赖 ├── README.md # 项目说明 └── LICENSE # 许可证 ``` --- ## 🔧 配置说明 ### 设置窗口 - **下载路径**:设置默认下载目录(留空则每次询问) - **预览最大文件大小**:预览时下载的文件大小限制(单位 MB) - **默认视图**:启动时的默认显示模式(列表/网格) - **缩略图**:启用/禁用网格视图缩略图,可调整大小 ### 快捷键 | 按键 | 功能 | |------|------| | `F5` | 刷新当前目录 | | `Delete` | 删除选中的文件/文件夹 | | `F2` | 重命名选中的文件/文件夹 | | `Ctrl+A` | 全选当前列表项 | --- ## 🐛 常见问题 ### 1. 登录时提示「Cookie 无效」 - 请确保复制的 Cookie 完整,包含 `UID`、`CID`、`SEID` 等字段 - Cookie 可能已过期,请重新登录 115 网页版后获取新 Cookie ### 2. 视频无法下载 - 客户端采用浏览器辅助播放方案,双击视频会自动打开浏览器网页版 - 可在浏览器中在线播放或手动点击下载按钮保存 ### 3. 系统托盘图标不显示(Linux) - 请确保系统支持 `org.kde.StatusNotifierItem` 协议 - 尝试注销后重新登录桌面环境 ### 4. 上传文件失败 - 当前上传采用浏览器辅助方案,点击上传后会打开浏览器当前目录 - 请在浏览器中手动选择文件上传 ### 5. 安装依赖时提示 `externally-managed-environment`(Deepin/UOS) - 请使用虚拟环境(`python -m venv venv`)隔离项目依赖 - 或使用 `pip install --break-system-packages`(不推荐) --- ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本仓库 2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`) 3. 提交您的更改 (`git commit -m 'Add some amazing feature'`) 4. 推送到分支 (`git push origin feature/amazing-feature`) 5. 打开一个 Pull Request --- ## 📄 许可证 本项目采用 [MIT License](LICENSE) 开源许可证。 --- ## 🙏 致谢 - 感谢 115 网盘提供的 Web 接口 - 感谢 PyQt5 和 requests 库的开发者 - 感谢所有贡献者和用户的支持 --- ## 📧 联系方式 如有问题或建议,请提交 [Issue](https://github.com/yourusername/115-desktop/issues) 或发送邮件至 your-email@example.com。 --- **免责声明**:本客户端为第三方开源项目,与 115 网盘官方无关。使用本软件即表示您已阅读并同意遵守 115 网盘的服务条款。请勿将本软件用于任何商业用途或违反法律法规的行为。 ``` --- ## 📌 后续建议 1. **替换截图占位符**:将 `https://via.placeholder.com/800x450?text=115+Desktop+Client+Screenshot` 替换为实际运行截图。 2. **更新仓库地址**:将 `https://github.com/yourusername/115-desktop.git` 替换为实际仓库地址。 3. **更新联系方式**:将 `your-email@example.com` 替换为实际邮箱。 4. **补充功能截图**:建议在 README 中添加一些关键功能的截图,如登录界面、文件列表、设置窗口等。