v2.5.25: 支持Client直接下载无混淆图片,添加docs示例 (#312)

This commit is contained in:
hect0x7 2024-11-30 11:23:23 +08:00 committed by GitHub
parent 1d6e5c9160
commit 6a63e9354d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 11 additions and 8 deletions

View File

@ -38,7 +38,7 @@ download_album(123, option)
option.download_album(123) option.download_album(123)
``` ```
## 获取本子/章节/图片的实体类 ## 获取本子/章节/图片的实体类,下载图片
```python ```python
from jmcomic import * from jmcomic import *
@ -59,7 +59,13 @@ def fetch(photo: JmPhotoDetail):
image: JmImageDetail image: JmImageDetail
for image in photo: for image in photo:
print(f'图片url: {image.img_url}') print(f'图片url: {image.img_url}')
# 下载单个图片
client.download_by_image_detail(image, './a.jpg')
# 如果是已知未混淆的图片也可以直接使用url来下载
random_image_domain = JmModuleConfig.DOMAIN_IMAGE_LIST
client.download_image(f'https://{random_image_domain}/media/albums/416130.jpg', './a.jpg')
# 多线程发起请求 # 多线程发起请求
multi_thread_launcher( multi_thread_launcher(

View File

@ -2,7 +2,7 @@
# 被依赖方 <--- 使用方 # 被依赖方 <--- 使用方
# config <--- entity <--- toolkit <--- client <--- option <--- downloader # config <--- entity <--- toolkit <--- client <--- option <--- downloader
__version__ = '2.5.24' __version__ = '2.5.25'
from .api import * from .api import *
from .jm_plugin import * from .jm_plugin import *

View File

@ -63,7 +63,7 @@ class JmImageResp(JmResp):
): ):
img_url = img_url or self.url img_url = img_url or self.url
if decode_image is False: if decode_image is False or scramble_id is None:
# 不解密图片,直接保存文件 # 不解密图片,直接保存文件
JmImageTool.save_resp_img( JmImageTool.save_resp_img(
self, self,
@ -245,9 +245,6 @@ class JmImageClient:
:param scramble_id: 图片所在photo的scramble_id :param scramble_id: 图片所在photo的scramble_id
:param decode_image: 要保存的是解密后的图还是原图 :param decode_image: 要保存的是解密后的图还是原图
""" """
if scramble_id is None:
scramble_id = JmMagicConstants.SCRAMBLE_220980
# 请求图片 # 请求图片
resp = self.get_jm_image(img_url) resp = self.get_jm_image(img_url)

View File

@ -6,7 +6,7 @@ from .jm_exception import *
class JmcomicText: class JmcomicText:
pattern_jm_domain = compile(r'https://([\w.-]+)') pattern_jm_domain = compile(r'https://([\w.-]+)')
pattern_jm_pa_id = [ pattern_jm_pa_id = [
(compile(r'(photos?|album)/(\d+)'), 2), (compile(r'(photos?|albums?)/(\d+)'), 2),
(compile(r'id=(\d+)'), 1), (compile(r'id=(\d+)'), 1),
] ]
pattern_html_jm_pub_domain = compile(r'[\w-]+\.\w+/?\w+') pattern_html_jm_pub_domain = compile(r'[\w-]+\.\w+/?\w+')