一个基于 Flask 的 qBittorrent 管理助手,用于自动化处理种子标签和跟踪器。
- 仪表盘: 查看 qBittorrent 的总体统计信息,包括种子数、Tracker 数、异常 Tracker 数以及分类和标签统计
- 任务管理: 创建和管理自动任务,支持手动执行和定时执行
- 规则配置:
- 标签规则: 根据 Tracker 关键字匹配种子并添加或删除标签
- 跟踪器规则: 根据标签匹配种子并添加或删除跟踪器
- 辅种标记规则: 自动识别并标记辅种
- 通知功能: 集成 Server酱 推送通知
- Web UI: 基于 Bootstrap 5 的响应式界面,支持暗色主题
qbit-helper/
├─ app.py # Flask 应用主文件
├─ qbit_helper.py # 核心功能实现
├─ requirements.txt # 项目依赖
├─ readme.md # 项目说明文档
└─ data/
├─ QBittorrent-Helper.log # 运行日志
├─ config.yaml # 用户配置文件
└─ config_example.yaml # 配置示例文件
└─ ui/
├─ css/
│ └─ styles.css # 自定义样式
├─ js/
│ ├─ bootstrap.bundle.min.js # Bootstrap JS
│ └─ scripts.js # 自定义脚本
└─ templates/
├─ dashboard.html # 仪表盘页面
├─ layout.html # 页面布局模板
├─ settings.html # 设置页面
└─ tasks.html # 任务页面
- Python 3.7+
- qBittorrent v4.1+
-
克隆项目到本地:
git clone <repository-url> cd qbit-helper
-
安装依赖:
pip install -r requirements.txt
-
配置 qBittorrent:
- 确保 qBittorrent 正在运行
- 在 qBittorrent 设置中启用 Web UI
- 记录 Web UI 的访问地址、用户名和密码
-
配置应用:
- 复制
data/config_example.yaml到data/config.yaml - 修改
data/config.yaml中的 qBittorrent 连接信息
- 复制
-
启动应用:
python app.py
推荐使用Gunicorn启动应用
gunicorn --bind 0.0.0.0:8080 --workers 4 app:app
-
访问 Web 界面:
- 打开浏览器访问
http://localhost:5000
- 打开浏览器访问
-
确保已安装 Docker 和 Docker Compose
-
构建并启动容器:
docker-compose up -d
-
配置 qBittorrent:
- 确保 qBittorrent 正在运行
- 在 qBittorrent 设置中启用 Web UI
- 记录 Web UI 的访问地址、用户名和密码
-
配置应用:
- 复制
data/config_example.yaml到data/config.yaml - 修改
data/config.yaml中的 qBittorrent 连接信息
- 复制
-
访问 Web 界面:
- 打开浏览器访问
http://localhost:5000
- 打开浏览器访问
-
拉取镜像并运行容器:
docker run -d \ --name qbit-helper \ -p 5000:5000 \ -v $(pwd)/data:/app/data \ your-image-name -
配置步骤同方式二的第3-5步
- 进入"设置"页面
- 在"配置"部分填写 qBittorrent 的连接信息:
- 主机:qBittorrent Web UI 的地址(如 http://192.168.0.123:8085)
- 用户名和密码:qBittorrent Web UI 的登录凭据
- 点击"保存配置"按钮
- 在"设置"页面的"配置"部分填写 Server酱 的 send key
- 点击"保存配置"按钮
- 进入"设置"页面
- 在"规则"部分点击"新增规则"按钮
- 选择规则类型:
- 处理标签:根据 Tracker 关键字匹配种子并添加或删除标签
- 处理跟踪器:根据标签匹配种子并添加或删除跟踪器
- 标记辅种:自动识别并标记辅种
- 填写规则信息:
- 规则名称:自定义规则名称
- 操作类型:添加或删除
- 优先级:1-99,值越小优先级越高
- 匹配条件:根据规则类型填写相应的匹配条件
- 点击"保存"按钮
- 进入"任务"页面
- 点击"新增任务"按钮
- 填写任务信息:
- 任务名称:自定义任务名称
- 任务类型:手动或自动
- Cron表达式:自动任务的执行时间表达式(仅自动任务需要填写)
- 选择规则:选择该任务要执行的规则
- 点击"保存任务"按钮
- 手动执行:在任务列表中点击任务的"执行"按钮
- 自动执行:根据任务配置的 Cron 表达式自动执行
- Flask: Web 框架
- qbittorrent-api: 与 qBittorrent Web API 交互
- PyYAML: 配置文件解析
- APScheduler: 任务调度
- Bootstrap 5: UI 框架
- Bootstrap Icons: 图标库
- 原生 JavaScript: 交互逻辑
GET /api/config/get_user_config: 获取用户配置POST /api/config/save_user_config: 保存用户配置GET /api/config/get_user_rules: 获取用户规则POST /api/config/save_user_rules: 保存用户规则GET /api/config/get_user_tasks: 获取用户任务POST /api/config/save_user_tasks: 保存用户任务POST /api/config/reload_config: 重载配置
POST /api/task/execute_manual_task: 执行手动任务POST /api/task/toggle_auto_task: 启用/禁用自动任务
GET /api/dashboard/info: 获取仪表盘信息
应用日志保存在 data/QBittorrent-Helper.log 文件中,包含以下信息:
- 应用启动和配置加载
- 与 qBittorrent 的连接状态
- 任务执行详情
- 错误信息
- 检查 qBittorrent Web UI 是否已启用
- 确认配置文件中的主机地址、用户名和密码是否正确
- 检查网络连接是否正常
- 查看日志文件了解详细错误信息
- 确认规则配置是否正确
- 检查 qBittorrent 是否正常运行
MIT License