使用Docker部署Python脚本实现Qbittorrent自动监控文件夹与种子管理

一、准备工作

    安装Docker 确保你的系统已经安装了Docker。可以通过以下命令检查Docker是否安装成功:

    docker --version
    

    安装Qbittorrent 你需要在本地或服务器上安装Qbittorrent。可以通过包管理器或官方网站下载安装。

    Python环境 虽然我们将使用Docker来运行Python脚本,但确保本地有Python环境可以方便调试。

二、编写Python脚本

首先,我们需要编写一个Python脚本来自动监控文件夹并管理Qbittorrent的种子。

import os
import time
import requests

# 配置Qbittorrent API
QBITTORRENT_URL = "http://localhost:8080/api/v2"
QBITTORRENT_USERNAME = "your_username"
QBITTORRENT_PASSWORD = "your_password"

# 监控的文件夹路径
MONITOR_FOLDER = "/path/to/your/folder"

def login_qbittorrent():
    session = requests.Session()
    login_payload = {
        "username": QBITTORRENT_USERNAME,
        "password": QBITTORRENT_PASSWORD
    }
    response = session.post(f"{QBITTORRENT_URL}/auth/login", data=login_payload)
    if response.status_code == 200:
        return session
    else:
        raise Exception("Failed to login to Qbittorrent")

def add_torrent(session, torrent_file):
    with open(torrent_file, "rb") as f:
        files = {"file": f}
        response = session.post(f"{QBITTORRENT_URL}/torrents/add", files=files)
        if response.status_code == 200:
            print(f"Added torrent: {torrent_file}")
        else:
            print(f"Failed to add torrent: {torrent_file}")

def monitor_folder(session):
    while True:
        for filename in os.listdir(MONITOR_FOLDER):
            if filename.endswith(".torrent"):
                torrent_file = os.path.join(MONITOR_FOLDER, filename)
                add_torrent(session, torrent_file)
                os.remove(torrent_file)
        time.sleep(10)  # 每10秒检查一次

if __name__ == "__main__":
    session = login_qbittorrent()
    monitor_folder(session)

三、创建Dockerfile

为了方便部署和管理,我们将使用Docker来运行这个Python脚本。

FROM python:3.9-slim

WORKDIR /app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "monitor.py"]

同时,创建一个requirements.txt文件,列出所需的Python库:

requests

四、构建Docker镜像

在项目根目录下运行以下命令构建Docker镜像:

docker build -t qbittorrent-monitor .

五、运行Docker容器

构建成功后,可以通过以下命令运行Docker容器:

docker run -d --name qbittorrent-monitor \
    -v /path/to/your/folder:/app/monitor_folder \
    -e QBITTORRENT_URL="http://localhost:8080/api/v2" \
    -e QBITTORRENT_USERNAME="your_username" \
    -e QBITTORRENT_PASSWORD="your_password" \
    qbittorrent-monitor

六、进阶功能

    日志记录 为了更好地追踪脚本运行情况,可以添加日志记录功能。

    错误处理 增加更详细的错误处理机制,确保脚本在遇到问题时能够及时恢复。

    通知机制 通过邮件或消息推送服务,及时通知用户种子的添加情况。

七、总结

通过本文的介绍,我们成功使用Docker部署了一个Python脚本,实现了Qbittorrent的自动监控文件夹与种子管理。这不仅提高了工作效率,还使得整个系统更加稳定和易于维护。希望这篇文章能对你有所帮助,欢迎在实际应用中不断探索和优化。


这篇文章详细介绍了从准备工作到实际部署的每一个步骤,旨在帮助读者理解和实现自动化管理Qbittorrent种子的过程。希望你能在这个过程中获得启发,进一步提升自己的技术能力。