新增删除规则 API,新增删除种子 API

This commit is contained in:
EstrellaXD
2023-05-11 00:12:16 +08:00
parent 6584705772
commit ac1b37badc
12 changed files with 158 additions and 39 deletions

View File

@@ -1,3 +1,3 @@
from .eps_complete import FullSeasonGet
from .renamer import Renamer
from .repath import set_new_path
from .torrent import TorrentManager

View File

@@ -0,0 +1,44 @@
import logging
from module.downloader import DownloadClient
from module.conf import settings
from module.models import BangumiData
logger = logging.getLogger(__name__)
class TorrentManager(DownloadClient):
@staticmethod
def __gen_path(data: BangumiData):
download_path = settings.downloader.path
if ":\\" in download_path:
import ntpath as path
else:
import os.path as path
folder = f"{data.official_title}({data.year})" if data.year else data.official_title
path = path.join(download_path, folder, f"Season {data.season}")
return path
@staticmethod
def __match_torrents_list(title_raw: str) -> list:
with DownloadClient() as client:
torrents = client.get_torrent_info()
return [torrent.hash for torrent in torrents if title_raw in torrent.name]
def delete_bangumi(self, data: BangumiData):
hash_list = self.__match_torrents_list(data.title_raw)
self.delete_torrent(hash_list)
def delete_rule(self, data: BangumiData):
rule_name = f"{data.official_title}({data.year})" if data.year else data.title_raw
if settings.bangumi_manage.group_tag:
rule_name = f"[{data.group_name}] {rule_name}" if self.group_tag else rule_name
self.remove_rule(rule_name)
def set_new_path(self, data: BangumiData):
# set download rule
self.set_rule(data)
# set torrent path
match_list = self.__match_torrents_list(data.title_raw)
path = self.__gen_path(data)
self.move_torrent(match_list, path)