From e3022fb4bf1107aa1418704a8c5752676c1a1785 Mon Sep 17 00:00:00 2001 From: hect0x7 <93357912+hect0x7@users.noreply.github.com> Date: Tue, 29 Aug 2023 21:50:08 +0800 Subject: [PATCH] =?UTF-8?q?v2.1.21:=20=E5=A2=9E=E5=8A=A0client=E7=9A=84?= =?UTF-8?q?=E5=9F=9F=E5=90=8D=E9=85=8D=E7=BD=AE=E6=96=B9=E6=B3=95=E4=BB=A5?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E9=85=8D=E7=BD=AE=E5=9F=9F=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jmcomic/__init__.py | 2 +- src/jmcomic/jm_client_impl.py | 7 ++++++- src/jmcomic/jm_client_interface.py | 14 ++++++++++---- src/jmcomic/jm_option.py | 6 +++--- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/jmcomic/__init__.py b/src/jmcomic/__init__.py index 22ce08f3..075ef7b7 100644 --- a/src/jmcomic/__init__.py +++ b/src/jmcomic/__init__.py @@ -2,6 +2,6 @@ # 被依赖方 <--- 使用方 # config <--- entity <--- toolkit <--- client <--- option <--- downloader -__version__ = '2.1.19' +__version__ = '2.1.21' from .api import * diff --git a/src/jmcomic/jm_client_impl.py b/src/jmcomic/jm_client_impl.py index 0ae0e3ad..0e8b15b4 100644 --- a/src/jmcomic/jm_client_impl.py +++ b/src/jmcomic/jm_client_impl.py @@ -1,7 +1,6 @@ from .jm_client_interface import * -# noinspection PyAbstractClass class AbstractJmClient( JmcomicClient, PostmanProxy, @@ -139,6 +138,12 @@ def get_jmcomic_url(self, postman=None): def get_jmcomic_domain_all(self, postman=None): return JmModuleConfig.get_jmcomic_domain_all(postman or self.get_root_postman()) + def get_domain_list(self): + return self.domain_list + + def set_domain_list(self, domain_list: List[str]): + self.domain_list = domain_list + # noinspection PyUnusedLocal def fallback(self, request, url, domain_index, retry_count, **kwargs): msg = f"请求重试全部失败: [{url}], {self.domain_list}" diff --git a/src/jmcomic/jm_client_interface.py b/src/jmcomic/jm_client_interface.py index 41349971..cd5d9c2e 100644 --- a/src/jmcomic/jm_client_interface.py +++ b/src/jmcomic/jm_client_interface.py @@ -279,8 +279,14 @@ class JmcomicClient( JmUserClient, Postman, ): - def get_jmcomic_url(self, postman=None): - return JmModuleConfig.get_jmcomic_url(postman or self) + def get_jmcomic_url(self): + return JmModuleConfig.get_jmcomic_url() - def get_jmcomic_domain_all(self, postman=None): - return JmModuleConfig.get_jmcomic_domain_all(postman or self) + def get_jmcomic_domain_all(self): + return JmModuleConfig.get_jmcomic_domain_all() + + def get_domain_list(self) -> List[str]: + raise NotImplementedError + + def set_domain_list(self, domain_list: List[str]): + raise NotImplementedError diff --git a/src/jmcomic/jm_option.py b/src/jmcomic/jm_option.py index 626825d0..32231bf0 100644 --- a/src/jmcomic/jm_option.py +++ b/src/jmcomic/jm_option.py @@ -226,7 +226,7 @@ def to_file(self, filepath=None): """ @field_cache("__jm_client_cache__") - def build_jm_client(self, **kwargs) -> JmcomicClient: + def build_jm_client(self, **kwargs): """ 该方法会首次调用会创建JmcomicClient对象, 然后保存在self.__jm_client_cache__中, @@ -234,7 +234,7 @@ def build_jm_client(self, **kwargs) -> JmcomicClient: """ return self.new_jm_client(**kwargs) - def new_jm_client(self, **kwargs) -> JmcomicClient: + def new_jm_client(self, domain_list=None, **kwargs) -> JmcomicClient: postman_conf: dict = self.client.postman.src_dict # support kwargs overwrite meta_data @@ -247,7 +247,7 @@ def new_jm_client(self, **kwargs) -> JmcomicClient: postman = Postmans.create(data=postman_conf) # domain_list - domain_list = self.client.domain + domain_list: List[str] = domain_list or self.client.domain if len(domain_list) == 0: domain_list = [JmModuleConfig.domain()]