From 147d980c54d8d030c78dce36e146cdb49d2b2027 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sun, 2 Mar 2025 08:51:09 +0800 Subject: [PATCH] fix hddolby --- app/modules/indexer/parser/__init__.py | 26 ++++++++++++++++++-------- app/modules/indexer/parser/hddolby.py | 7 ++++--- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/modules/indexer/parser/__init__.py b/app/modules/indexer/parser/__init__.py index af77ddbc..7b150157 100644 --- a/app/modules/indexer/parser/__init__.py +++ b/app/modules/indexer/parser/__init__.py @@ -156,11 +156,17 @@ class SiteParserBase(metaclass=ABCMeta): 解析站点信息 :return: """ - # 获取站点首页html - self._index_html = self._get_page_content(url=self._site_url) - # 检查是否已经登录 - if not self._parse_logged_in(self._index_html): - return + # Cookie模式时,获取站点首页html + if self.request_mode == "apikey": + if not self.apikey and not self.token: + logger.warn(f"{self._site_name} 未设置cookie 或 apikey/token,跳过后续操作") + return + self._index_html = {} + else: + # 检查是否已经登录 + self._index_html = self._get_page_content(url=self._site_url) + if not self._parse_logged_in(self._index_html): + return # 解析站点页面 self._parse_site_page(self._index_html) # 解析用户基础信息 @@ -294,9 +300,13 @@ class SiteParserBase(metaclass=ABCMeta): req_headers = None proxies = settings.PROXY if self._proxy else None if self._ua or headers or self._addition_headers: - req_headers = { - "User-Agent": f"{self._ua}" - } + + if self.request_mode == "apikey": + req_headers = {} + else: + req_headers = { + "User-Agent": f"{self._ua}" + } if headers: req_headers.update(headers) diff --git a/app/modules/indexer/parser/hddolby.py b/app/modules/indexer/parser/hddolby.py index 651b5f64..1fe5174d 100644 --- a/app/modules/indexer/parser/hddolby.py +++ b/app/modules/indexer/parser/hddolby.py @@ -47,7 +47,8 @@ class HDDolbySiteUserInfo(SiteParserBase): self._user_traffic_page = None self._user_detail_page = None self._user_basic_page = "api/v1/user/data" - self._user_basic_params = { + self._user_basic_params = {} + self._user_basic_headers = { "Content-Type": "application/json", "Accept": "application/json, text/plain, */*" } @@ -80,7 +81,7 @@ class HDDolbySiteUserInfo(SiteParserBase): if not html_text: return None detail = json.loads(html_text) - if not detail or detail.get("code") != "0": + if not detail or detail.get("status") != 0: return user_info = detail.get("data", {}) """ @@ -125,7 +126,7 @@ class HDDolbySiteUserInfo(SiteParserBase): if not html_text: return None seeding_info = json.loads(html_text) - if not seeding_info or seeding_info.get("status") != "0": + if not seeding_info or seeding_info.get("status") != 0: return None torrents = seeding_info.get("data", {}) page_seeding_size = 0