fix #434
This commit is contained in:
@ -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,
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
Reference in New Issue
Block a user