fix #2192
This commit is contained in:
@ -375,7 +375,7 @@ class ChainBase(metaclass=ABCMeta):
|
|||||||
transfer_type=transfer_type, target=target, episodes_info=episodes_info,
|
transfer_type=transfer_type, target=target, episodes_info=episodes_info,
|
||||||
scrape=scrape)
|
scrape=scrape)
|
||||||
|
|
||||||
def transfer_completed(self, hashs: Union[str, list], path: Path = None,
|
def transfer_completed(self, hashs: str, path: Path = None,
|
||||||
downloader: str = settings.DEFAULT_DOWNLOADER) -> None:
|
downloader: str = settings.DEFAULT_DOWNLOADER) -> None:
|
||||||
"""
|
"""
|
||||||
转移完成后的处理
|
转移完成后的处理
|
||||||
|
@ -242,7 +242,7 @@ class QbittorrentModule(_ModuleBase):
|
|||||||
return None
|
return None
|
||||||
return ret_torrents
|
return ret_torrents
|
||||||
|
|
||||||
def transfer_completed(self, hashs: Union[str, list], path: Path = None,
|
def transfer_completed(self, hashs: str, path: Path = None,
|
||||||
downloader: str = settings.DEFAULT_DOWNLOADER) -> None:
|
downloader: str = settings.DEFAULT_DOWNLOADER) -> None:
|
||||||
"""
|
"""
|
||||||
转移完成后的处理
|
转移完成后的处理
|
||||||
|
@ -230,7 +230,7 @@ class TransmissionModule(_ModuleBase):
|
|||||||
return None
|
return None
|
||||||
return ret_torrents
|
return ret_torrents
|
||||||
|
|
||||||
def transfer_completed(self, hashs: Union[str, list], path: Path = None,
|
def transfer_completed(self, hashs: str, path: Path = None,
|
||||||
downloader: str = settings.DEFAULT_DOWNLOADER) -> None:
|
downloader: str = settings.DEFAULT_DOWNLOADER) -> None:
|
||||||
"""
|
"""
|
||||||
转移完成后的处理
|
转移完成后的处理
|
||||||
@ -241,7 +241,14 @@ class TransmissionModule(_ModuleBase):
|
|||||||
"""
|
"""
|
||||||
if downloader != "transmission":
|
if downloader != "transmission":
|
||||||
return None
|
return None
|
||||||
self.transmission.set_torrent_tag(ids=hashs, tags=['已整理'])
|
# 获取原标签
|
||||||
|
org_tags = self.transmission.get_torrent_tags(ids=hashs)
|
||||||
|
# 种子打上已整理标签
|
||||||
|
if org_tags:
|
||||||
|
tags = org_tags + ['已整理']
|
||||||
|
else:
|
||||||
|
tags = ['已整理']
|
||||||
|
self.transmission.set_torrent_tag(ids=hashs, tags=tags)
|
||||||
# 移动模式删除种子
|
# 移动模式删除种子
|
||||||
if settings.TRANSFER_TYPE == "move":
|
if settings.TRANSFER_TYPE == "move":
|
||||||
if self.remove_torrents(hashs):
|
if self.remove_torrents(hashs):
|
||||||
|
@ -2,7 +2,7 @@ from typing import Optional, Union, Tuple, List, Dict
|
|||||||
|
|
||||||
import transmission_rpc
|
import transmission_rpc
|
||||||
from transmission_rpc import Client, Torrent, File
|
from transmission_rpc import Client, Torrent, File
|
||||||
from transmission_rpc.session import SessionStats
|
from transmission_rpc.session import SessionStats, Session
|
||||||
|
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
from app.log import logger
|
from app.log import logger
|
||||||
@ -130,21 +130,38 @@ class Transmission:
|
|||||||
logger.error(f"获取正在下载的种子列表出错:{str(err)}")
|
logger.error(f"获取正在下载的种子列表出错:{str(err)}")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def set_torrent_tag(self, ids: str, tags: list) -> bool:
|
def set_torrent_tag(self, ids: str, tags: list, org_tags: list = None) -> bool:
|
||||||
"""
|
"""
|
||||||
设置种子标签
|
设置种子标签,注意TR默认会覆盖原有标签,如需追加需传入原有标签
|
||||||
"""
|
"""
|
||||||
if not self.trc:
|
if not self.trc:
|
||||||
return False
|
return False
|
||||||
if not ids or not tags:
|
if not ids or not tags:
|
||||||
return False
|
return False
|
||||||
try:
|
try:
|
||||||
self.trc.change_torrent(labels=tags, ids=ids)
|
self.trc.change_torrent(labels=list(set((org_tags or []) + tags)), ids=ids)
|
||||||
return True
|
return True
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"设置种子标签出错:{str(err)}")
|
logger.error(f"设置种子标签出错:{str(err)}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def get_torrent_tags(self, ids: str) -> List[str]:
|
||||||
|
"""
|
||||||
|
获取所有种子标签
|
||||||
|
"""
|
||||||
|
if not self.trc:
|
||||||
|
return []
|
||||||
|
try:
|
||||||
|
torrent = self.trc.get_torrents(ids=ids, arguments=self._trarg)
|
||||||
|
if torrent:
|
||||||
|
labels = [str(tag).strip()
|
||||||
|
for tag in torrent.labels] if hasattr(torrent, "labels") else []
|
||||||
|
return labels
|
||||||
|
except Exception as err:
|
||||||
|
logger.error(f"获取种子标签出错:{str(err)}")
|
||||||
|
return []
|
||||||
|
return []
|
||||||
|
|
||||||
def add_torrent(self, content: Union[str, bytes],
|
def add_torrent(self, content: Union[str, bytes],
|
||||||
is_paused: bool = False,
|
is_paused: bool = False,
|
||||||
download_dir: str = None,
|
download_dir: str = None,
|
||||||
@ -397,15 +414,15 @@ class Transmission:
|
|||||||
logger.error(f"修改tracker出错:{str(err)}")
|
logger.error(f"修改tracker出错:{str(err)}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_session(self) -> Dict[str, Union[int, bool, str]]:
|
def get_session(self) -> Optional[Session]:
|
||||||
"""
|
"""
|
||||||
获取Transmission当前的会话信息和配置设置
|
获取Transmission当前的会话信息和配置设置
|
||||||
:return dict or False
|
:return dict
|
||||||
"""
|
"""
|
||||||
if not self.trc:
|
if not self.trc:
|
||||||
return False
|
return None
|
||||||
try:
|
try:
|
||||||
return self.trc.get_session()
|
return self.trc.get_session()
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
logger.error(f"获取session出错:{str(err)}")
|
logger.error(f"获取session出错:{str(err)}")
|
||||||
return False
|
return None
|
||||||
|
Reference in New Issue
Block a user