fix #434
This commit is contained in:
@ -159,9 +159,14 @@ class DownloadChain(ChainBase):
|
|||||||
_hash, error_msg = None, "未知错误"
|
_hash, error_msg = None, "未知错误"
|
||||||
|
|
||||||
if _hash:
|
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(
|
self.downloadhis.add(
|
||||||
path=_folder_name or _torrent.title,
|
path=download_path,
|
||||||
type=_media.type.value,
|
type=_media.type.value,
|
||||||
title=_media.title,
|
title=_media.title,
|
||||||
year=_media.year,
|
year=_media.year,
|
||||||
|
@ -130,19 +130,22 @@ class TorrentHelper:
|
|||||||
"""
|
"""
|
||||||
获取种子文件的文件夹名和文件清单
|
获取种子文件的文件夹名和文件清单
|
||||||
:param torrent_path: 种子文件路径
|
:param torrent_path: 种子文件路径
|
||||||
:return: 文件夹名、文件清单
|
:return: 文件夹名、文件清单,单文件种子返回空文件夹名
|
||||||
"""
|
"""
|
||||||
if not torrent_path or not torrent_path.exists():
|
if not torrent_path or not torrent_path.exists():
|
||||||
return "", []
|
return "", []
|
||||||
try:
|
try:
|
||||||
torrentinfo = Torrent.from_file(torrent_path)
|
torrentinfo = Torrent.from_file(torrent_path)
|
||||||
# 获取目录名
|
|
||||||
folder_name = torrentinfo.name
|
|
||||||
# 获取文件清单
|
# 获取文件清单
|
||||||
if not torrentinfo.files:
|
if not torrentinfo.files:
|
||||||
|
# 单文件种子目录名返回空
|
||||||
|
folder_name = ""
|
||||||
# 单文件种子
|
# 单文件种子
|
||||||
file_list = [torrentinfo.name]
|
file_list = [torrentinfo.name]
|
||||||
else:
|
else:
|
||||||
|
# 目录名
|
||||||
|
folder_name = torrentinfo.name
|
||||||
|
# 文件清单
|
||||||
file_list = [fileinfo.name for fileinfo in torrentinfo.files]
|
file_list = [fileinfo.name for fileinfo in torrentinfo.files]
|
||||||
logger.debug(f"{torrent_path.stem} -> 目录:{folder_name},文件清单:{file_list}")
|
logger.debug(f"{torrent_path.stem} -> 目录:{folder_name},文件清单:{file_list}")
|
||||||
return folder_name, file_list
|
return folder_name, file_list
|
||||||
|
@ -50,21 +50,16 @@ class SubtitleModule(_ModuleBase):
|
|||||||
logger.info("开始从站点下载字幕:%s" % torrent.page_url)
|
logger.info("开始从站点下载字幕:%s" % torrent.page_url)
|
||||||
# 获取种子信息
|
# 获取种子信息
|
||||||
folder_name, _ = TorrentHelper.get_torrent_info(torrent_path)
|
folder_name, _ = TorrentHelper.get_torrent_info(torrent_path)
|
||||||
# 下载目录,也可能是文件名
|
# 文件保存目录,如果是单文件种子,则folder_name是空,此时文件保存目录就是下载目录
|
||||||
download_dir = download_dir / (folder_name or "")
|
download_dir = download_dir / folder_name
|
||||||
# 等待文件或者目录存在
|
# 等待目录存在
|
||||||
for _ in range(30):
|
for _ in range(30):
|
||||||
if download_dir.exists():
|
if download_dir.exists():
|
||||||
break
|
break
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
# 目录仍然不存在,且是目录则创建目录
|
# 目录仍然不存在,且有文件夹名,则创建目录
|
||||||
if not download_dir.exists() \
|
if not download_dir.exists() and folder_name:
|
||||||
and download_dir.suffix not in settings.RMT_MEDIAEXT:
|
|
||||||
download_dir.mkdir(parents=True, exist_ok=True)
|
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)
|
request = RequestUtils(cookies=torrent.site_cookie, ua=torrent.site_ua)
|
||||||
res = request.get_res(torrent.page_url)
|
res = request.get_res(torrent.page_url)
|
||||||
|
Reference in New Issue
Block a user