Skip to content

Commit b40f80b

Browse files
authored
Merge branch 'hect0x7:master' into master
2 parents a3b9d13 + 6a63e93 commit b40f80b

File tree

6 files changed

+22
-23
lines changed

6 files changed

+22
-23
lines changed

assets/docs/sources/tutorial/0_common_usage.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ download_album(123, option)
3838
option.download_album(123)
3939
```
4040

41-
## 获取本子/章节/图片的实体类
41+
## 获取本子/章节/图片的实体类,下载图片
4242

4343
```python
4444
from jmcomic import *
@@ -59,7 +59,13 @@ def fetch(photo: JmPhotoDetail):
5959
image: JmImageDetail
6060
for image in photo:
6161
print(f'图片url: {image.img_url}')
62-
62+
63+
# 下载单个图片
64+
client.download_by_image_detail(image, './a.jpg')
65+
# 如果是已知未混淆的图片,也可以直接使用url来下载
66+
random_image_domain = JmModuleConfig.DOMAIN_IMAGE_LIST
67+
client.download_image(f'https://{random_image_domain}/media/albums/416130.jpg', './a.jpg')
68+
6369

6470
# 多线程发起请求
6571
multi_thread_launcher(

src/jmcomic/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# 被依赖方 <--- 使用方
33
# config <--- entity <--- toolkit <--- client <--- option <--- downloader
44

5-
__version__ = '2.5.22'
5+
__version__ = '2.5.25'
66

77
from .api import *
88
from .jm_plugin import *

src/jmcomic/jm_client_interface.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def transfer_to(self,
6363
):
6464
img_url = img_url or self.url
6565

66-
if decode_image is False:
66+
if decode_image is False or scramble_id is None:
6767
# 不解密图片,直接保存文件
6868
JmImageTool.save_resp_img(
6969
self,
@@ -245,9 +245,6 @@ def download_image(self,
245245
:param scramble_id: 图片所在photo的scramble_id
246246
:param decode_image: 要保存的是解密后的图还是原图
247247
"""
248-
if scramble_id is None:
249-
scramble_id = JmMagicConstants.SCRAMBLE_220980
250-
251248
# 请求图片
252249
resp = self.get_jm_image(img_url)
253250

src/jmcomic/jm_config.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class JmMagicConstants:
7676
APP_TOKEN_SECRET = '18comicAPP'
7777
APP_TOKEN_SECRET_2 = '18comicAPPContent'
7878
APP_DATA_SECRET = '185Hcomic3PAPP7R'
79-
APP_VERSION = '1.7.2'
79+
APP_VERSION = '1.7.5'
8080

8181

8282
# 模块级别共用配置
@@ -127,13 +127,10 @@ class JmModuleConfig:
127127

128128
# 移动端API域名
129129
DOMAIN_API_LIST = shuffled('''
130-
www.cdnxxx-proxy.vip
131-
www.cdnxxx-proxy.org
132-
www.cdnxxx-proxy.xyz
133-
www.cdnxxx-proxy.co
130+
www.jmapiproxyxxx.vip
131+
www.cdnblackmyth.vip
134132
www.cdnblackmyth.xyz
135-
136-
133+
www.cdnxxx-proxy.co
137134
''')
138135

139136
APP_HEADERS_TEMPLATE = {

src/jmcomic/jm_toolkit.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class JmcomicText:
77
pattern_jm_domain = compile(r'https://([\w.-]+)')
88
pattern_jm_pa_id = [
9-
(compile(r'(photos?|album)/(\d+)'), 2),
9+
(compile(r'(photos?|albums?)/(\d+)'), 2),
1010
(compile(r'id=(\d+)'), 1),
1111
]
1212
pattern_html_jm_pub_domain = compile(r'[\w-]+\.\w+/?\w+')
@@ -25,31 +25,30 @@ class JmcomicText:
2525
pattern_html_album_album_id = compile(r'<span class="number">.*?:JM(\d+)</span>')
2626
pattern_html_album_scramble_id = compile(r'var scramble_id = (\d+);')
2727
pattern_html_album_name = compile(r'<h1 class="book-name" id="book-name">([\s\S]*?)</h1>')
28-
pattern_html_album_episode_list = compile(r'data-album="(\d+)">\n *?<li.*?>\n *'
29-
r'第(\d+)話\n([\s\S]*?)\n *'
30-
r'<[\s\S]*?>(\d+-\d+-\d+).*?')
28+
pattern_html_album_episode_list = compile(r'data-album="(\d+)"\s*?>\s*?<li.*?>\s*?第(\d+)話([\s\S]*?)<[\s\S]*?>(\d+-\d+-\d+).*?')
3129
pattern_html_album_page_count = compile(r'<span class="pagecount">.*?:(\d+)</span>')
3230
pattern_html_album_pub_date = compile(r'>上架日期 : (.*?)</span>')
3331
pattern_html_album_update_date = compile(r'>更新日期 : (.*?)</span>')
32+
pattern_html_tag_a = compile(r'<a[^>]*?>\s*(\S*)\s*</a>')
3433
# 作品
3534
pattern_html_album_works = [
3635
compile(r'<span itemprop="author" data-type="works">([\s\S]*?)</span>'),
37-
compile(r'<a[^>]*?>(.*?)</a>')
36+
pattern_html_tag_a,
3837
]
3938
# 登場人物
4039
pattern_html_album_actors = [
4140
compile(r'<span itemprop="author" data-type="actor">([\s\S]*?)</span>'),
42-
compile(r'<a[^>]*?>(.*?)</a>')
41+
pattern_html_tag_a,
4342
]
4443
# 标签
4544
pattern_html_album_tags = [
4645
compile(r'<span itemprop="genre" data-type="tags">([\s\S]*?)</span>'),
47-
compile(r'<a[^>]*?>(.*?)</a>')
46+
pattern_html_tag_a,
4847
]
4948
# 作者
5049
pattern_html_album_authors = [
5150
compile(r'作者: *<span itemprop="author" data-type="author">([\s\S]*?)</span>'),
52-
compile(r"<a[^>]*?>(.*?)</a>"),
51+
pattern_html_tag_a,
5352
]
5453
# 點擊喜歡
5554
pattern_html_album_likes = compile(r'<span id="albim_likes_\d+">(.*?)</span>')

tests/test_jmcomic/test_jm_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def test_photo_sort(self):
7171

7272
# 测试用例 - 多章本子
7373
multi_photo_album_is = str_to_list('''
74-
400222
74+
282293
7575
122061
7676
''')
7777

0 commit comments

Comments
 (0)