From 0979163b791d7c385b2d23e41959e2d0cc8d395e Mon Sep 17 00:00:00 2001 From: PKC278 <52959804+PKC278@users.noreply.github.com> Date: Sat, 10 Jan 2026 02:12:33 +0800 Subject: [PATCH] =?UTF-8?q?fix(rousi):=20=E4=BF=AE=E6=AD=A3=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E5=8F=82=E6=95=B0=E4=B8=BA=E5=8D=95=E4=B8=80=E5=80=BC?= =?UTF-8?q?=E4=BB=A5=E7=AC=A6=E5=90=88API=E8=A6=81=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/modules/indexer/spider/rousi.py | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/app/modules/indexer/spider/rousi.py b/app/modules/indexer/spider/rousi.py index e6dec24b..87c6a8f2 100644 --- a/app/modules/indexer/spider/rousi.py +++ b/app/modules/indexer/spider/rousi.py @@ -32,8 +32,9 @@ class RousiSpider: _timeout = 15 # 分类定义 - _movie_category = ['movie', 'documentary', 'animation'] - _tv_category = ['tv', 'documentary', 'animation', 'variety'] + # API 不支持多分类搜索,每次只使用一个分类 + _movie_category = 'movie' + _tv_category = 'tv' # API KEY _apikey = None @@ -71,20 +72,20 @@ class RousiSpider: if keyword: params["keyword"] = keyword - # API 支持多分类搜索,需要使用数组格式:category[]=xxx&category[]=yyy - # 优先使用用户选择的分类,如果用户未选择则根据 mtype 推断 + # API 不支持多分类搜索,只使用单个 category 参数 + # 优先使用用户选择的分类,如果用户未选择则根据 mtype 推断 if cat: - # 用户选择了特定分类,需要将分类 ID 映射回 API 的 category name + # 用户选择了特定分类,需要将分类 ID 映射回 API 的 category name category_names = self.__get_category_names_by_ids(cat) if category_names: - # 使用数组格式 category[]=xxx - params["category[]"] = category_names + # 如果用户选择了多个分类,只取第一个 + params["category"] = category_names[0] elif mtype: - # 用户未选择分类,根据媒体类型推断 + # 用户未选择分类,根据媒体类型推断 if mtype == MediaType.MOVIE: - params["category[]"] = self._movie_category + params["category"] = self._movie_category elif mtype == MediaType.TV: - params["category[]"] = self._tv_category + params["category"] = self._tv_category return params @@ -166,10 +167,12 @@ class RousiSpider: if cat_val: cat_val = str(cat_val).lower() - if cat_val in self._movie_category: + if cat_val == self._movie_category: category = MediaType.MOVIE.value - elif cat_val in self._tv_category: + elif cat_val == self._tv_category: category = MediaType.TV.value + else: + category = MediaType.UNKNOWN.value # 解析促销信息 # API 后端已处理全站促销优先级,直接使用返回的 promotion 数据