mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-07 00:16:57 +08:00
fix #4795
This commit is contained in:
@@ -591,7 +591,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
text=__process_msg,
|
text=__process_msg,
|
||||||
data={
|
data={
|
||||||
"current": Path(fileitem.path).as_posix(),
|
"current": Path(fileitem.path).as_posix(),
|
||||||
"finished":finished_files
|
"finished": finished_files
|
||||||
})
|
})
|
||||||
# 整理
|
# 整理
|
||||||
state, err_msg = self.__handle_transfer(task=task, callback=item.callback)
|
state, err_msg = self.__handle_transfer(task=task, callback=item.callback)
|
||||||
@@ -1471,13 +1471,9 @@ class TransferChain(ChainBase, metaclass=Singleton):
|
|||||||
for file in torrent_files:
|
for file in torrent_files:
|
||||||
file_path = save_path / file.name
|
file_path = save_path / file.name
|
||||||
# 如果存在未被屏蔽的媒体文件,则不删除种子
|
# 如果存在未被屏蔽的媒体文件,则不删除种子
|
||||||
if (
|
if (file_path.suffix in self.all_exts
|
||||||
file_path.suffix in self.all_exts
|
and not self._is_blocked_by_exclude_words(str(file_path), transfer_exclude_words)
|
||||||
and not self._is_blocked_by_exclude_words(
|
and file_path.exists()):
|
||||||
str(file_path), transfer_exclude_words
|
|
||||||
)
|
|
||||||
and file_path.exists()
|
|
||||||
):
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# 所有媒体文件都被屏蔽或不存在,可以删除种子
|
# 所有媒体文件都被屏蔽或不存在,可以删除种子
|
||||||
|
|||||||
+19
-8
@@ -610,14 +610,19 @@ class PluginHelper(metaclass=WeakSingleton):
|
|||||||
asset = next((a for a in assets if a.get("name") == asset_name), None)
|
asset = next((a for a in assets if a.get("name") == asset_name), None)
|
||||||
if not asset:
|
if not asset:
|
||||||
return False, f"未找到资产文件:{asset_name}"
|
return False, f"未找到资产文件:{asset_name}"
|
||||||
download_url = asset.get("browser_download_url")
|
asset_id = asset.get("id")
|
||||||
if not download_url:
|
if not asset_id:
|
||||||
return False, "资产缺少下载地址"
|
return False, "资产缺少ID信息"
|
||||||
|
# 构建资产的API下载URL
|
||||||
|
download_url = f"https://api.github.com/repos/{user_repo}/releases/assets/{asset_id}"
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"解析 Release 信息失败:{e}")
|
logger.error(f"解析 Release 信息失败:{e}")
|
||||||
return False, f"解析 Release 信息失败:{e}"
|
return False, f"解析 Release 信息失败:{e}"
|
||||||
|
|
||||||
res = self.__request_with_fallback(download_url, headers=settings.REPO_GITHUB_HEADERS(repo=user_repo))
|
# 使用资产的API端点下载,需要设置Accept头为application/octet-stream
|
||||||
|
headers = settings.REPO_GITHUB_HEADERS(repo=user_repo).copy()
|
||||||
|
headers["Accept"] = "application/octet-stream"
|
||||||
|
res = self.__request_with_fallback(download_url, headers=headers, is_api=True)
|
||||||
if res is None or res.status_code != 200:
|
if res is None or res.status_code != 200:
|
||||||
return False, f"下载资产失败:{res.status_code if res else '连接失败'}"
|
return False, f"下载资产失败:{res.status_code if res else '连接失败'}"
|
||||||
|
|
||||||
@@ -1525,15 +1530,21 @@ class PluginHelper(metaclass=WeakSingleton):
|
|||||||
asset = next((a for a in assets if a.get("name") == asset_name), None)
|
asset = next((a for a in assets if a.get("name") == asset_name), None)
|
||||||
if not asset:
|
if not asset:
|
||||||
return False, f"未找到资产文件:{asset_name}"
|
return False, f"未找到资产文件:{asset_name}"
|
||||||
download_url = asset.get("browser_download_url")
|
asset_id = asset.get("id")
|
||||||
if not download_url:
|
if not asset_id:
|
||||||
return False, "资产缺少下载地址"
|
return False, "资产缺少ID信息"
|
||||||
|
# 构建资产的API下载URL
|
||||||
|
download_url = f"https://api.github.com/repos/{user_repo}/releases/assets/{asset_id}"
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"解析 Release 信息失败:{e}")
|
logger.error(f"解析 Release 信息失败:{e}")
|
||||||
return False, f"解析 Release 信息失败:{e}"
|
return False, f"解析 Release 信息失败:{e}"
|
||||||
|
|
||||||
|
# 使用资产的API端点下载,需要设置Accept头为application/octet-stream
|
||||||
|
headers = settings.REPO_GITHUB_HEADERS(repo=user_repo).copy()
|
||||||
|
headers["Accept"] = "application/octet-stream"
|
||||||
res = await self.__async_request_with_fallback(download_url,
|
res = await self.__async_request_with_fallback(download_url,
|
||||||
headers=settings.REPO_GITHUB_HEADERS(repo=user_repo))
|
headers=headers,
|
||||||
|
is_api=True)
|
||||||
if res is None or res.status_code != 200:
|
if res is None or res.status_code != 200:
|
||||||
return False, f"下载资产失败:{res.status_code if res else '连接失败'}"
|
return False, f"下载资产失败:{res.status_code if res else '连接失败'}"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user