输出下载结果

import os
import os.path

import requests

import bgmi3.exc
from bgmi3.core import Subscription
from bgmi3.protocol import output


class MyOutput(output.Base):
    @classmethod
    def require(cls) -> None:
        pass

    def __init__(self, config: dict) -> None:
        super().__init__(config)

    def execute(
        self, subscription: "Subscription", torrent: str, save_path: str
    ) -> None:
        if not torrent.startswith("http"):
            return
        try:
            r = requests.get(torrent)
        except requests.ConnectionError as e:
            raise bgmi3.exc.ConnectError from e
        filename = os.path.basename(torrent)
        with open(os.path.join(save_path, filename), "wb") as f:
            f.write(r.content)

警告

输出的具体格式还没有想好,因为不确定除了最简单的下载之外还要支持什么功能。