jmcomic 2.6.9__py3-none-any.whl → 2.6.10__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- jmcomic/__init__.py +1 -1
- jmcomic/jm_config.py +1 -1
- jmcomic/jm_option.py +12 -2
- jmcomic/jm_toolkit.py +28 -2
- {jmcomic-2.6.9.dist-info → jmcomic-2.6.10.dist-info}/METADATA +2 -2
- jmcomic-2.6.10.dist-info/RECORD +18 -0
- jmcomic-2.6.9.dist-info/RECORD +0 -18
- {jmcomic-2.6.9.dist-info → jmcomic-2.6.10.dist-info}/WHEEL +0 -0
- {jmcomic-2.6.9.dist-info → jmcomic-2.6.10.dist-info}/entry_points.txt +0 -0
- {jmcomic-2.6.9.dist-info → jmcomic-2.6.10.dist-info}/licenses/LICENSE +0 -0
- {jmcomic-2.6.9.dist-info → jmcomic-2.6.10.dist-info}/top_level.txt +0 -0
jmcomic/__init__.py
CHANGED
jmcomic/jm_config.py
CHANGED
|
@@ -411,7 +411,7 @@ class JmModuleConfig:
|
|
|
411
411
|
|
|
412
412
|
DEFAULT_OPTION_DICT: dict = {
|
|
413
413
|
'log': None,
|
|
414
|
-
'dir_rule': {'rule': 'Bd_Pname', 'base_dir': None},
|
|
414
|
+
'dir_rule': {'rule': 'Bd_Pname', 'base_dir': None, 'normalize_zh': None},
|
|
415
415
|
'download': {
|
|
416
416
|
'cache': True,
|
|
417
417
|
'image': {'decode': True, 'suffix': None},
|
jmcomic/jm_option.py
CHANGED
|
@@ -60,10 +60,16 @@ class CacheRegistry:
|
|
|
60
60
|
class DirRule:
|
|
61
61
|
RULE_BASE_DIR = 'Bd'
|
|
62
62
|
|
|
63
|
-
def __init__(self, rule: str, base_dir=None):
|
|
63
|
+
def __init__(self, rule: str, base_dir=None, normalize_zh=None):
|
|
64
|
+
"""
|
|
65
|
+
:param rule: DSL rule
|
|
66
|
+
:param base_dir: base directory
|
|
67
|
+
:param normalize_zh: 'zh-cn'|'zh-tw'| or None. 控制是否以及如何进行繁简体归一化,默认 None
|
|
68
|
+
"""
|
|
64
69
|
base_dir = JmcomicText.parse_to_abspath(base_dir)
|
|
65
70
|
self.base_dir = base_dir
|
|
66
71
|
self.rule_dsl = rule
|
|
72
|
+
self.normalize_zh = normalize_zh
|
|
67
73
|
self.parser_list: List[Tuple[str, Callable]] = self.get_rule_parser_list(rule)
|
|
68
74
|
|
|
69
75
|
def decide_image_save_dir(self,
|
|
@@ -88,7 +94,9 @@ class DirRule:
|
|
|
88
94
|
jm_log('dir_rule', f'路径规则"{rule}"的解析出错: {e}, album={album}, photo={photo}')
|
|
89
95
|
raise e
|
|
90
96
|
if parser != self.parse_bd_rule:
|
|
91
|
-
|
|
97
|
+
# 根据配置 normalize_zh 进行繁简体统一
|
|
98
|
+
conv_path = JmcomicText.to_zh(str(path), self.normalize_zh)
|
|
99
|
+
path = fix_windir_name(conv_path).strip()
|
|
92
100
|
|
|
93
101
|
path_ls.append(path)
|
|
94
102
|
|
|
@@ -201,6 +209,7 @@ class JmOption:
|
|
|
201
209
|
dir_rule={
|
|
202
210
|
'rule': self.dir_rule.rule_dsl,
|
|
203
211
|
'base_dir': self.dir_rule.base_dir,
|
|
212
|
+
'normalize_zh': self.dir_rule.normalize_zh,
|
|
204
213
|
},
|
|
205
214
|
download=self.download.src_dict,
|
|
206
215
|
client=self.client.src_dict,
|
|
@@ -326,6 +335,7 @@ class JmOption:
|
|
|
326
335
|
'dir_rule': {
|
|
327
336
|
'rule': self.dir_rule.rule_dsl,
|
|
328
337
|
'base_dir': self.dir_rule.base_dir,
|
|
338
|
+
'normalize_zh': self.dir_rule.normalize_zh,
|
|
329
339
|
},
|
|
330
340
|
'download': self.download.src_dict,
|
|
331
341
|
'client': self.client.src_dict,
|
jmcomic/jm_toolkit.py
CHANGED
|
@@ -329,8 +329,34 @@ class JmcomicText:
|
|
|
329
329
|
|
|
330
330
|
@classmethod
|
|
331
331
|
def to_zh_cn(cls, s):
|
|
332
|
-
|
|
333
|
-
return
|
|
332
|
+
# 兼容旧接口,默认转换为简体
|
|
333
|
+
return cls.to_zh(s, 'zh-cn')
|
|
334
|
+
|
|
335
|
+
@classmethod
|
|
336
|
+
def to_zh(cls, s, target=None):
|
|
337
|
+
"""
|
|
338
|
+
通用的繁简体转换接口。
|
|
339
|
+
|
|
340
|
+
:param s: 待转换字符串
|
|
341
|
+
:param target: 目标编码: 'zh-cn'(简体), 'zh-tw'(繁体),或 None 表示不转换
|
|
342
|
+
:return: 转换后的字符串(若转换失败或未安装 zhconv,返回原始字符串)
|
|
343
|
+
"""
|
|
344
|
+
if s is None:
|
|
345
|
+
return s
|
|
346
|
+
|
|
347
|
+
if not target:
|
|
348
|
+
return s
|
|
349
|
+
|
|
350
|
+
try:
|
|
351
|
+
import zhconv
|
|
352
|
+
return zhconv.convert(s, target)
|
|
353
|
+
except ImportError as e:
|
|
354
|
+
jm_log('zhconv.error', '繁简转换失败,未安装zhconv,请先使用命令安装: [pip install zhconv]')
|
|
355
|
+
return s
|
|
356
|
+
except Exception as e:
|
|
357
|
+
# 如果 zhconv 不可用或转换失败,则回退原字符串
|
|
358
|
+
jm_log('zhconv.error', f'error: [{e}], s: [{s}]')
|
|
359
|
+
return s
|
|
334
360
|
|
|
335
361
|
@classmethod
|
|
336
362
|
def try_mkdir(cls, save_dir: str):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jmcomic
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.10
|
|
4
4
|
Summary: Python API For JMComic (禁漫天堂)
|
|
5
5
|
Home-page: https://github.com/hect0x7/JMComic-Crawler-Python
|
|
6
6
|
Author: hect0x7
|
|
@@ -200,7 +200,7 @@ jmcomic 123
|
|
|
200
200
|
|
|
201
201
|
- 不配置也能使用,十分方便
|
|
202
202
|
- 配置可以从配置文件生成,支持多种文件格式
|
|
203
|
-
- 配置点有:`请求域名` `客户端实现` `是否使用磁盘缓存` `同时下载的章节/图片数量` `图片格式转换` `下载路径规则` `请求元信息(headers,cookies,proxies
|
|
203
|
+
- 配置点有:`请求域名` `客户端实现` `是否使用磁盘缓存` `同时下载的章节/图片数量` `图片格式转换` `下载路径规则` `请求元信息(headers,cookies,proxies)` `中文繁/简转换`
|
|
204
204
|
等
|
|
205
205
|
- **可扩展性强**
|
|
206
206
|
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
jmcomic/__init__.py,sha256=aF8prAr4WXYL4ENj4VguJAKEwTPHVLQ1vtOg6vlPGm8,903
|
|
2
|
+
jmcomic/api.py,sha256=ZduhXDmh4lg1dkXHs7UTAaPpYNO7kcdPCDH5JJT9KSI,4253
|
|
3
|
+
jmcomic/cl.py,sha256=PBSh0JndNFZw3B7WJPj5Y8SeFdKzHE00jIwYo9An-K0,3475
|
|
4
|
+
jmcomic/jm_client_impl.py,sha256=UpzqO3LD567U7ETs6SpSdCKQS4mvtbCbN6sVwU6DXxk,42301
|
|
5
|
+
jmcomic/jm_client_interface.py,sha256=HJPmaY0xdSghPKuTh2CvVjlgJmoW1rubqjysHcOGDHQ,19701
|
|
6
|
+
jmcomic/jm_config.py,sha256=y4YJebAKhMKt-oPGn6kahjKfZpAtzD4s6MSjSI8NYM4,17235
|
|
7
|
+
jmcomic/jm_downloader.py,sha256=azYkIN-1OuEivZ1TGGDaYo1FkcO5KatSb0g4GVdKSPY,11041
|
|
8
|
+
jmcomic/jm_entity.py,sha256=ZyXVy3mOl9qkxlw6hyshVS3RR-yKfO5BkJHtyBAoKQE,20053
|
|
9
|
+
jmcomic/jm_exception.py,sha256=x3KGMLlQS2zi1GX7z5G58zJN2EwLkI4mAURkxZYjEvA,5055
|
|
10
|
+
jmcomic/jm_option.py,sha256=k9trr4627evFV6t2vnpDC376uomUnKczSJFyAqF1UNo,22037
|
|
11
|
+
jmcomic/jm_plugin.py,sha256=9_EfTOVCk4ey1QQiKjYhFnd6j9XG-YM8rXiN21w-KrU,45374
|
|
12
|
+
jmcomic/jm_toolkit.py,sha256=6eKhqdSY2_gVjxzY_D1790B_xI_aG1kR4w3NMXJNoFk,32228
|
|
13
|
+
jmcomic-2.6.10.dist-info/licenses/LICENSE,sha256=kz4coTxZxuGxisK3W00tjK57Zh3RcMGq-EnbXrK7-xA,1064
|
|
14
|
+
jmcomic-2.6.10.dist-info/METADATA,sha256=0LeWCNRAFOGZ7L1t1ruAjo97xz07T97u1BzO3GAdm_A,9594
|
|
15
|
+
jmcomic-2.6.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
16
|
+
jmcomic-2.6.10.dist-info/entry_points.txt,sha256=tRbQltaGSBjejI0c9jYt-4SXQMd5nSDHcMvHmuTy4ow,44
|
|
17
|
+
jmcomic-2.6.10.dist-info/top_level.txt,sha256=puvVMFYJqIbd6NOTMEvOyugMTT8woBfSQyxEBan3zY4,8
|
|
18
|
+
jmcomic-2.6.10.dist-info/RECORD,,
|
jmcomic-2.6.9.dist-info/RECORD
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
jmcomic/__init__.py,sha256=uYzq8cX-BV_LQ5RFpXSWdmW9yA00SSwdpVQlRA_Olio,902
|
|
2
|
-
jmcomic/api.py,sha256=ZduhXDmh4lg1dkXHs7UTAaPpYNO7kcdPCDH5JJT9KSI,4253
|
|
3
|
-
jmcomic/cl.py,sha256=PBSh0JndNFZw3B7WJPj5Y8SeFdKzHE00jIwYo9An-K0,3475
|
|
4
|
-
jmcomic/jm_client_impl.py,sha256=UpzqO3LD567U7ETs6SpSdCKQS4mvtbCbN6sVwU6DXxk,42301
|
|
5
|
-
jmcomic/jm_client_interface.py,sha256=HJPmaY0xdSghPKuTh2CvVjlgJmoW1rubqjysHcOGDHQ,19701
|
|
6
|
-
jmcomic/jm_config.py,sha256=8GDETnzQObZabd441Boc--Mb--J2kr7HLxxViKB0DvI,17213
|
|
7
|
-
jmcomic/jm_downloader.py,sha256=azYkIN-1OuEivZ1TGGDaYo1FkcO5KatSb0g4GVdKSPY,11041
|
|
8
|
-
jmcomic/jm_entity.py,sha256=ZyXVy3mOl9qkxlw6hyshVS3RR-yKfO5BkJHtyBAoKQE,20053
|
|
9
|
-
jmcomic/jm_exception.py,sha256=x3KGMLlQS2zi1GX7z5G58zJN2EwLkI4mAURkxZYjEvA,5055
|
|
10
|
-
jmcomic/jm_option.py,sha256=jczCX9gmSaTcl1BJLVYe9YN8GIdFYNQQVwDSh4oymto,21503
|
|
11
|
-
jmcomic/jm_plugin.py,sha256=9_EfTOVCk4ey1QQiKjYhFnd6j9XG-YM8rXiN21w-KrU,45374
|
|
12
|
-
jmcomic/jm_toolkit.py,sha256=2ltGKeJORZ7ARTrC-29nkO9TSu8Kzxdrqj6O28PIw28,31297
|
|
13
|
-
jmcomic-2.6.9.dist-info/licenses/LICENSE,sha256=kz4coTxZxuGxisK3W00tjK57Zh3RcMGq-EnbXrK7-xA,1064
|
|
14
|
-
jmcomic-2.6.9.dist-info/METADATA,sha256=PUBkNLrDi6UFgp86Y8h3sFrygyAQBRfKkEDN7Zvsvfs,9572
|
|
15
|
-
jmcomic-2.6.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
16
|
-
jmcomic-2.6.9.dist-info/entry_points.txt,sha256=tRbQltaGSBjejI0c9jYt-4SXQMd5nSDHcMvHmuTy4ow,44
|
|
17
|
-
jmcomic-2.6.9.dist-info/top_level.txt,sha256=puvVMFYJqIbd6NOTMEvOyugMTT8woBfSQyxEBan3zY4,8
|
|
18
|
-
jmcomic-2.6.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|