This commit is contained in:
jxxghp
2023-09-04 19:30:06 +08:00
parent 65ad7123f9
commit b7d2168f8e
3 changed files with 17 additions and 14 deletions

View File

@ -159,9 +159,14 @@ class DownloadChain(ChainBase):
_hash, error_msg = None, "未知错误"
if _hash:
# 下载文件路径
if _folder_name:
download_path = download_dir / _folder_name
else:
download_path = download_dir / _file_list[0] if _file_list else download_dir
# 登记下载记录
self.downloadhis.add(
path=_folder_name or _torrent.title,
path=download_path,
type=_media.type.value,
title=_media.title,
year=_media.year,

View File

@ -130,19 +130,22 @@ class TorrentHelper:
"""
获取种子文件的文件夹名和文件清单
:param torrent_path: 种子文件路径
:return: 文件夹名、文件清单
:return: 文件夹名、文件清单,单文件种子返回空文件夹名
"""
if not torrent_path or not torrent_path.exists():
return "", []
try:
torrentinfo = Torrent.from_file(torrent_path)
# 获取目录名
folder_name = torrentinfo.name
# 获取文件清单
if not torrentinfo.files:
# 单文件种子目录名返回空
folder_name = ""
# 单文件种子
file_list = [torrentinfo.name]
else:
# 目录名
folder_name = torrentinfo.name
# 文件清单
file_list = [fileinfo.name for fileinfo in torrentinfo.files]
logger.debug(f"{torrent_path.stem} -> 目录:{folder_name},文件清单:{file_list}")
return folder_name, file_list

View File

@ -50,21 +50,16 @@ class SubtitleModule(_ModuleBase):
logger.info("开始从站点下载字幕:%s" % torrent.page_url)
# 获取种子信息
folder_name, _ = TorrentHelper.get_torrent_info(torrent_path)
# 下载目录,也可能是文件名
download_dir = download_dir / (folder_name or "")
# 等待文件或者目录存在
# 文件保存目录如果是单文件种子则folder_name是空此时文件保存目录就是下载目录
download_dir = download_dir / folder_name
# 等待目录存在
for _ in range(30):
if download_dir.exists():
break
time.sleep(1)
# 目录仍然不存在,且是目录则创建目录
if not download_dir.exists() \
and download_dir.suffix not in settings.RMT_MEDIAEXT:
# 目录仍然不存在,且有文件夹名,则创建目录
if not download_dir.exists() and folder_name:
download_dir.mkdir(parents=True, exist_ok=True)
# 不是目录说明是单文件种子,直接使用下载目录
if download_dir.is_file() \
or download_dir.suffix in settings.RMT_MEDIAEXT:
download_dir = download_dir.parent
# 读取网站代码
request = RequestUtils(cookies=torrent.site_cookie, ua=torrent.site_ua)
res = request.get_res(torrent.page_url)