From cce72d08844fe36c4d244cf81bb3fe93e9db3c71 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 30 May 2026 08:53:49 +0800 Subject: [PATCH] fix: proxy bangumi requests --- app/modules/bangumi/__init__.py | 21 ++++++++++++++++++--- app/modules/bangumi/bangumi.py | 20 ++++++++++++++++---- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/app/modules/bangumi/__init__.py b/app/modules/bangumi/__init__.py index db8f6e6a..6bf1ed56 100644 --- a/app/modules/bangumi/__init__.py +++ b/app/modules/bangumi/__init__.py @@ -12,19 +12,31 @@ from app.utils.http import RequestUtils class BangumiModule(_ModuleBase): + """ + Bangumi媒体信息匹配 + """ + CONFIG_WATCH = {"PROXY_HOST"} + bangumiapi: BangumiApi = None def init_module(self) -> None: + """ + 初始化Bangumi客户端 + """ self.bangumiapi = BangumiApi() - def stop(self): - self.bangumiapi.close() + def stop(self) -> None: + """ + 关闭Bangumi客户端 + """ + if self.bangumiapi: + self.bangumiapi.close() def test(self) -> Tuple[bool, str]: """ 测试模块连接性 """ - ret = RequestUtils().get_res("https://api.bgm.tv/") + ret = RequestUtils(proxies=settings.PROXY).get_res("https://api.bgm.tv/") if ret and ret.status_code == 200: return True, "" elif ret: @@ -36,6 +48,9 @@ class BangumiModule(_ModuleBase): @staticmethod def get_name() -> str: + """ + 获取模块名称 + """ return "Bangumi" @staticmethod diff --git a/app/modules/bangumi/bangumi.py b/app/modules/bangumi/bangumi.py index e7ada111..994f769e 100644 --- a/app/modules/bangumi/bangumi.py +++ b/app/modules/bangumi/bangumi.py @@ -10,7 +10,9 @@ from app.utils.http import RequestUtils, AsyncRequestUtils class BangumiApi(object): """ - https://bangumi.github.io/api/ + Bangumi API客户端。 + + 接口文档:https://bangumi.github.io/api/ """ _urls = { @@ -28,8 +30,15 @@ class BangumiApi(object): def __init__(self): self._session = requests.Session() - self._req = RequestUtils(ua=settings.NORMAL_USER_AGENT, session=self._session) - self._async_req = AsyncRequestUtils(ua=settings.NORMAL_USER_AGENT) + self._req = RequestUtils( + ua=settings.NORMAL_USER_AGENT, + proxies=settings.PROXY, + session=self._session, + ) + self._async_req = AsyncRequestUtils( + ua=settings.NORMAL_USER_AGENT, + proxies=settings.PROXY, + ) @cached(maxsize=settings.CONF.bangumi, ttl=settings.CONF.meta, shared_key="get") def __invoke(self, url, key: Optional[str] = None, **kwargs): @@ -306,6 +315,9 @@ class BangumiApi(object): """ self.__invoke.cache_clear() - def close(self): + def close(self) -> None: + """ + 关闭Bangumi会话 + """ if self._session: self._session.close()