# 115网盘桌面工具 **Repository Path**: deepin20/115-desktop-tool ## Basic Information - **Project Name**: 115网盘桌面工具 - **Description**: 115网盘桌面工具:基于 PyQt5 的 115 网盘客户端,支持离线下载(闪推)与秒传链接批量转存。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-14 - **Last Updated**: 2026-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 115网盘桌面工具 > 基于 PyQt5 的 115 网盘客户端,支持离线下载(闪推)与秒传链接批量转存。 ![Python Version](https://img.shields.io/badge/Python-3.8+-blue.svg) ![PyQt5](https://img.shields.io/badge/PyQt5-5.15-green.svg) ![License](https://img.shields.io/badge/License-MIT-yellow.svg) --- ## 📦 功能特性 - 🔐 **Cookie 登录** —— 支持从浏览器导入完整 Cookie(一键导入 JSON 或手动粘贴) - ⚡ **离线下载(闪推)** —— 批量添加磁力链接、电驴链接、HTTP/HTTPS 链接及 BT 种子文件 - 🔄 **任务队列管理** —— 异步并发添加,自动去重(基于缓存),配额监控与自动清理 - 📦 **秒传转存** —— 支持 `115://` 格式秒传链接批量转存,冲突策略可选(跳过/重命名/询问) - 📂 **自动创建目录** —— 转存时自动创建多级文件夹(如 `视频/2024/电影`) - 🖥️ **图形界面** —— 基于 PyQt5,支持深色风格,操作直观 - 📊 **实时监控** —— 后台轮询任务状态,完成时自动通知 - ⚙️ **偏好设置** —— 并发数、超时时间、监控间隔等可调 --- ## 🚀 快速开始 ### 环境要求 - Python 3.8 及以上 - 操作系统:Windows / Linux / macOS ### 安装 1. 克隆仓库 ```bash git clone https://github.com/yourname/115-tools.git cd 115-tools ``` 2. 创建虚拟环境(可选) ```bash python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows ``` 3. 安装依赖 ```bash pip install -r requirements.txt ``` ### 运行 ```bash python main.py ``` 或 ```bash python -m ui.main_window ``` 首次启动会自动创建 `data/` 目录及日志文件 `data/app.log`。 --- ## 🧭 使用指南 ### 1. 登录 - 从浏览器获取 Cookie(需包含 `UID`、`CID`、`SEID` 及其他辅助字段) - 在登录界面选择「导入 115_cookies.json」(推荐使用 EditThisCookie 等扩展导出) - 或手动粘贴 Cookie 字符串 ### 2. 离线下载(闪推) - 切换到「闪推」标签页 - 输入下载链接(每行一个) - 选择保存目录(支持 CID 或路径名) - 点击「添加任务」,后台自动处理 ### 3. 秒传转存 - 切换到「秒传转存」标签页 - 粘贴秒传链接(每行一个) - 设置目标目录、并发数、冲突策略 - 点击「开始转存」,进度实时显示 --- ## ⚙️ 配置 所有配置集中在 `config.py` 中,您可以根据需要调整: | 配置项 | 说明 | 默认值 | |--------|------|--------| | `DEFAULT_TIMEOUT` | 请求超时(秒) | 30 | | `DEFAULT_RETRY_COUNT` | 网络重试次数 | 3 | | `LOG_LEVEL` | 日志级别 | INFO | | `SIGN_SALT` | 签名盐(可环境变量覆盖) | 115 | | `DEFAULT_WORKERS` | 默认并发数 | 3 | 环境变量可覆盖 `SIGN_SALT`: ```bash export P115_SIGN_SALT=your_salt ``` --- ## 📁 目录结构 ``` . ├── main.py # 程序入口 ├── config.py # 全局配置 ├── requirements.txt # 依赖清单 ├── core/ # 核心接口 │ ├── client.py # 115 API 客户端 │ ├── offline.py # 离线下载核心 │ └── transfer.py # 秒传转存核心 ├── services/ # 业务服务层 │ ├── auth_service.py # 认证服务 │ ├── offline_service.py # 离线下载服务(队列、缓存、监控) │ └── transfer_service.py # 转存服务(冲突处理、批量) ├── ui/ # GUI 界面 │ ├── main_window.py # 主窗口 │ ├── login_widget.py # 登录组件 │ ├── offline_tab.py # 离线下载标签页 │ ├── transfer_tab.py # 转存标签页 │ └── settings_dialog.py # 设置对话框 ├── data/ # 运行时数据(自动创建) │ ├── cookies.json # 保存的 Cookie │ ├── app.log # 日志文件 │ └── cache/ # 缓存数据库 └── tests/ # 单元测试(可选) ``` --- ## 🧪 测试 运行单元测试(需要先安装 pytest): ```bash pytest tests/ ``` --- ## 📝 注意事项 - **Cookie 有效期**:115 网盘 Cookie 可能定期失效,需要重新登录。 - **签名机制**:代码中的签名盐 `SIGN_SALT` 若需保密,建议通过环境变量注入。 - **并发限制**:批量操作时请勿设置过高的并发数,以免触发风控。 - **数据安全**:`data/cookies.json` 存储明文 Cookie,请勿公开分享。 --- ## 🤝 贡献 欢迎提交 Issue 和 Pull Request。请确保代码风格与现有保持一致,并添加适当的单元测试。 --- ## ⚠️ 免责声明 本工具仅供**学习交流**使用,请勿用于任何商业或非法用途。使用本工具所产生的一切后果由使用者自行承担。 --- ## 📄 许可证 [MIT License](LICENSE)