# eh-PtPlugin **Repository Path**: MISSMYSEIF/eh-pt-plugin ## Basic Information - **Project Name**: eh-PtPlugin - **Description**: 一款PT插件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-13 - **Last Updated**: 2026-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EH-PT-Plugin 一款PT自动辅种工具,支持手机H5端访问,帮助PT用户自动管理站点和辅种任务。 ## 项目介绍 EH-PT-Plugin 是一个基于 Python FastAPI + Vue 3 + Element Plus 开发的 PT 自动辅种工具。它可以帮助 PT 用户自动管理多个站点,对接 qBittorrent 和 Transmission 下载器,实现自动辅种功能。 ### 主要功能 - **站点管理**: 支持添加和管理多个 PT 站点,支持 CookieCloud 同步(兼容 MoviePilot 本地服务器和 cookiecloud.io) - **下载器对接**: 支持 qBittorrent 和 Transmission 下载器,支持 SOCKS5/HTTP 代理 - **自动辅种**: 自动扫描做种任务并提交到辅种服务器,支持 IYUU 辅种 - **任务管理**: 辅种任务的创建、执行、重试和删除 - **数据统计**: 流量统计、任务统计、站点状态等,支持站点数据统计表格及概览卡片(上传/下载/魔力/做种/更新时间) - **RSS订阅**: 支持自动下载和过滤功能 - **站点签到**: 支持自动签到和积分获取 - **跨站点搜索**: 支持多站点并行搜索和结果聚合 - **文件转移**: 支持不同存储位置之间的文件转移 - **DDNS配置**: 支持阿里云/Cloudflare/DNSPod动态域名解析 - **消息通知**: 支持 Telegram/Bark/PushPlus/钉钉/微信通知 - **插件系统**: 支持插件扩展,可自定义功能 - **积分管理**: 个人积分统计、全站排行榜 - **深色模式**: 支持浅色/深色主题切换 - **响应式设计**: 以 PC Web 端为主,同时适配手机端 - **国际化支持**: 支持简体中文和英文双语切换 - **下载器流量统计**: 实时展示各下载器上传/下载速度、今日/累计流量、做种统计、磁盘空间 - **路由管理**: 支持本地/远程路由器节点管理,ARP 网络设备发现,设备流量统计与实时速度监控 ## 技术栈 ### 后端 - Python 3.10+ - FastAPI - 高性能异步 Web 框架 - SQLAlchemy 2.0 - 异步 ORM 数据库操作 - APScheduler - 定时任务调度 - qbittorrent-api - qBittorrent API 客户端 - transmission-rpc - Transmission RPC 客户端 - aiohttp-socks - SOCKS5 代理支持 - feedparser - RSS 订阅解析 - beautifulsoup4 - HTML 解析 ### 前端 - Vue 3 - 渐进式 JavaScript 框架 - Element Plus - 企业级 PC 端组件库,同时适配移动端 - Pinia - Vue 状态管理 - ECharts - 数据可视化图表库 - Axios - HTTP 客户端 - Vite - 下一代前端构建工具 ## 项目结构 ``` eh-pt-plugin/ ├── backend/ # 后端代码 │ ├── app/ │ │ ├── api/ # API 路由 │ │ ├── core/ # 核心配置 │ │ ├── models/ # 数据库模型 │ │ ├── schemas/ # Pydantic 模型 │ │ ├── services/ # 业务逻辑 │ │ ├── tasks/ # 定时任务 │ │ └── utils/ # 工具函数 │ ├── main.py # 入口文件 │ ├── requirements.txt # Python 依赖 │ └── Dockerfile # 后端 Docker 配置 ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── api/ # API 调用 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 组件 │ │ ├── router/ # 路由配置 │ │ ├── store/ # 状态管理 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面组件 │ ├── index.html # HTML 入口 │ ├── main.js # JS 入口 │ ├── package.json # Node 依赖 │ ├── vite.config.js # Vite 配置 │ └── Dockerfile # 前端 Docker 配置 ├── docker/ # Docker 配置文件 │ ├── nginx.conf # Nginx 配置 │ └── supervisord.conf # Supervisor 配置 ├── docs/ # 文档 │ ├── guide.md # 快速开始教程 │ ├── deploy.md # 完整部署教程(含镜像编译) │ ├── docker.md # Docker 部署教程 │ └── WIKI.md # 完整功能文档 ├── docker-compose.yml # Docker Compose 配置(单镜像部署) └── README.md # 项目说明 ``` ## 文档 - [快速开始教程](docs/guide.md) - 快速上手使用 - [完整部署教程](docs/deploy.md) - 所有部署方式(含镜像编译) - [Docker 部署教程](docs/docker.md) - Docker 部署方案 - [完整功能文档](docs/WIKI.md) - 全部功能说明 ## 安装教程 ### 后端安装 1. 安装 Python 3.10 或更高版本 2. 创建虚拟环境并激活 ```bash cd backend python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate ``` 3. 安装依赖 ```bash pip install -r requirements.txt ``` 4. 配置环境变量(可选) 创建 `.env` 文件并配置: ```env DATABASE_URL=sqlite+aiosqlite:///./eh_pt_plugin.db JWT_SECRET_KEY=your-secret-key # 如需使用 MySQL: # DATABASE_URL=mysql+aiomysql://root:password@localhost:3306/eh_pt_plugin ``` 5. 启动后端服务 ```bash python main.py ``` 后端服务将在 `http://localhost:8000` 启动 ### 前端安装 1. 安装 Node.js 18 或更高版本 2. 安装依赖 ```bash cd frontend npm install ``` 3. 启动开发服务器 ```bash npm run dev ``` 前端服务将在 `http://localhost:3000` 启动 4. 构建生产版本 ```bash npm run build ``` ## 开发环境启动 如果你已完成上述安装步骤,可以通过以下方式快速启动项目: ### 方式一:分别启动 **启动后端**(先确保在 `backend` 目录下,且虚拟环境已激活): ```bash cd backend python main.py ``` 后端将在 `http://localhost:8000` 启动,自动创建数据库和默认管理员账号。 **启动前端**(新开一个终端,在 `frontend` 目录下): ```bash cd frontend npm run dev ``` 前端开发服务器将在 `http://localhost:3000` 启动,通过 Vite 代理自动转发 API 请求到后端。 ### 方式二:一键启动 在项目根目录下,可以同时启动前后端: ```bash # Windows PowerShell Start-Process -NoNewWindow python -ArgumentList "backend/main.py" Start-Process -NoNewWindow npm -ArgumentList "run dev" -WorkingDirectory "frontend" # Linux / Mac cd backend && python main.py & cd frontend && npm run dev & ``` ### 启动后访问 | 服务 | 地址 | |------|------| | 前端页面 | http://localhost:3000 | | 后端 API | http://localhost:8000 | | API 文档 (Swagger) | http://localhost:8000/docs | | API 文档 (ReDoc) | http://localhost:8000/redoc | > **提示**: 首次启动后端会自动创建 `admin` / `admin123` 默认管理员账号。默认使用 SQLite 数据库,无需额外配置。如需使用 MySQL,请参考 [部署教程](docs/deploy.md)。 ### Docker 部署 #### 方式一:使用单镜像(推荐) 项目已支持前后端合并成一个镜像,部署更简单: 1. 克隆项目 ```bash git clone https://gitee.com/MISSMYSEIF/eh-pt-plugin.git cd eh-pt-plugin ``` 2. 构建单镜像(或使用预构建镜像) ```bash # 自行构建 docker build -t eh-pt-plugin:latest . # 导出镜像文件(用于分发到其他机器) docker save -o eh-pt-plugin.tar eh-pt-plugin:latest # 导出文件大小约 170MB # 或使用预构建镜像(如果有) # docker pull your-registry/eh-pt-plugin:latest ``` 3. 启动容器(使用 Docker Compose) ```bash docker-compose up -d ``` 4. 手动启动容器(可选) ```bash docker run -d \ --name eh-pt-plugin \ -p 7890:7890 \ -v ./data:/app/data \ -v ./logs:/app/logs \ -e DATABASE_URL=sqlite+aiosqlite:///./data/eh_pt_plugin.db \ -e JWT_SECRET_KEY=your-secret-key \ eh-pt-plugin:latest ``` 5. 在其他机器导入镜像(可选) ```bash # 从tar文件加载镜像 docker load -i eh-pt-plugin.tar # 启动服务 docker-compose up -d ``` #### 方式二:使用 Docker Compose(分离部署) 如需使用 MySQL 数据库或分离部署,参考 `docs/deploy.md`。 #### 访问应用 | 服务 | 地址 | |------|------| | 前端页面 | http://localhost:7890 | | 后端 API | http://localhost:7890/api | | API 文档 | http://localhost:7890/docs | ### 默认账号 首次启动会自动创建默认管理员账号: | 项目 | 值 | |-----|-----| | 用户名 | `admin` | | 密码 | `admin123` | > ⚠️ **安全提示**: 生产环境请及时修改默认密码! 详细部署教程请查看 [Docker 部署教程](docs/docker.md) ## 使用说明 ### 1. 登录系统 首次使用: - 打开前端页面 `http://localhost:3000`(开发环境)或 `http://localhost:7890`(Docker部署) - 使用默认账号 `admin` / `admin123` 登录 - 登录后建议修改密码 ### 2. 配置下载器 在"下载器管理"页面添加下载器: - 选择下载器类型(qBittorrent 或 Transmission) - 输入下载器地址、端口、用户名和密码 - 可选:配置 SOCKS5 或 HTTP 代理,用于通过代理连接下载器 - 点击"测试连接"验证配置 - 保存下载器配置 ### 3. 配置站点 在"站点管理"页面添加 PT 站点: #### 方式一:手动添加 - 输入站点名称和地址 - 配置 Cookie 或 Passkey - 设置官组(用于站点分组) - 设置限速(默认上传速度为 5 MB/s) - 选择默认下载器和保存路径 - 保存站点配置 #### 方式二:CookieCloud 同步(推荐) - 支持 MoviePilot 本地服务器模式 - 支持 cookiecloud.io 云端服务 - 一键同步所有站点 Cookie ### 4. 执行辅种 在"仪表盘"页面: - 点击"扫描做种任务"扫描下载器中的做种任务 - 点击"执行辅种任务"开始自动辅种 - 在"辅种任务"页面查看任务状态 ### 5. RSS 订阅 在"RSS订阅"页面: - 添加 RSS 订阅源 - 配置自动下载规则 - 设置过滤条件(关键词、大小限制、免费种子) - 系统自动检查并下载符合条件的种子 ### 6. 站点签到 在"站点签到"页面: - 查看各站点签到状态 - 手动执行签到 - 配置自动签到定时任务 ### 7. 查看统计 仪表盘页面显示: - 活跃站点数和下载器数 - 做种中的种子数 - 上传和下载流量统计 - 辅种任务状态统计 ## API 文档 后端启动后,访问以下地址查看 API 文档: - Swagger UI: `http://localhost:8000/docs` - ReDoc: `http://localhost:8000/redoc` ## 配置说明 ### 后端配置 | 配置项 | 说明 | 默认值 | |--------|------|--------| | DATABASE_URL | 数据库连接地址 | sqlite+aiosqlite:///./eh_pt_plugin.db | | JWT_SECRET_KEY | JWT 密钥 | 自动生成随机密钥(生产环境建议手动设置) | | JWT_ACCESS_TOKEN_EXPIRE_MINUTES | Token 过期时间 | 43200(30天) | | RESCAN_INTERVAL | 扫描间隔(秒) | 300 | | MAX_CONCURRENT_DOWNLOADS | 最大并发下载数 | 5 | | PROXY_ENABLED | 是否启用全局代理 | false | | HTTP_PROXY | HTTP 代理地址 | 空 | | SOCKS5_PROXY | SOCKS5 代理地址 | 空 | | DEBUG | 调试模式 | true | ### 前端配置 前端通过 Vite 代理连接后端,默认配置: ```javascript proxy: { '/api': { target: 'http://localhost:8000', changeOrigin: true } } ``` ## 免责声明 在使用本工具前,请认真阅读以下免责声明: 1. 本工具仅用于自动化管理 PT 站点和种子,不会与 PT 站点服务器产生任何交互 2. 建议不要手动跳校验,任何因跳校验导致的封号与本工具无关 3. 官方首发资源的种子,本工具无法在出种前辅种 4. 使用本工具造成的一切损失,与本工具无关 ## 参与贡献 欢迎参与项目开发: 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 开源协议 本项目采用 MIT 协议开源,详见 [LICENSE](LICENSE) 文件。 ## 致谢 感谢以下项目的启发与支持: - [qBittorrent](https://github.com/qbittorrent/qBittorrent) - 开源 BitTorrent 下载器,本项目对接其 Web API - [Transmission](https://github.com/transmission/transmission) - 开源轻量级 BT 下载器,本项目对接其 RPC 协议 - [IYUUPlus](https://gitee.com/ledc/iyuuplus-dev) - PT 自动辅种工具 - [MoviePilot](https://github.com/jxxghp/MoviePilot) - NAS 媒体库自动化管理工具 - [PTNexus](https://gitee.com/sqing33/PTNexus) - PT下载器与种子管理工具 - [PTD (PT-depiler)](https://github.com/pt-plugins/PT-depiler) - PT站点数据解析工具(等级/做种量/时魔方案参考) - [NexusPHP](https://github.com/xiaomlove/nexusphp) - PT站点管理系统 - [FastAPI](https://fastapi.tiangolo.com/) - 现代 Python Web 框架 - [Element Plus](https://element-plus.org/) - Vue 3 组件库 - [ECharts](https://echarts.apache.org/) - 数据可视化图表库