From ae5207f0e4596af04fc80ebbc33a61e7f17e6759 Mon Sep 17 00:00:00 2001 From: InfinityPacer Date: Mon, 13 Apr 2026 18:15:54 +0800 Subject: [PATCH] fix(plugin): handle 404 plugin index and None response safely --- app/helper/plugin.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/helper/plugin.py b/app/helper/plugin.py index 33e54eaa..eeaa4d5a 100644 --- a/app/helper/plugin.py +++ b/app/helper/plugin.py @@ -86,8 +86,12 @@ class PluginHelper(metaclass=WeakSingleton): package_url = f"{raw_url}package.{package_version}.json" if package_version else f"{raw_url}package.json" res = self.__request_with_fallback(package_url, headers=settings.REPO_GITHUB_HEADERS(repo=f"{user}/{repo}")) - if res is None or res.status_code != 200: - return {} if res.status_code == 404 else None + if res is None: + return None + if res.status_code == 404: + return {} + if res.status_code != 200: + return None return self.__parse_plugin_index_response(res.text) def get_plugin_package_version(self, pid: str, repo_url: str, @@ -991,7 +995,11 @@ class PluginHelper(metaclass=WeakSingleton): res = await self.__async_request_with_fallback(package_url, headers=settings.REPO_GITHUB_HEADERS(repo=f"{user}/{repo}")) - if res is None or res.status_code != 200: + if res is None: + return None + if res.status_code == 404: + return {} + if res.status_code != 200: return None return self.__parse_plugin_index_response(res.text)