nonebot-plugin-jmdownloader 1.0.0__tar.gz → 1.0.2__tar.gz
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.
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/PKG-INFO +2 -2
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader/__init__.py +37 -21
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader/utils.py +4 -4
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader.egg-info/PKG-INFO +2 -2
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader.egg-info/requires.txt +1 -1
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/pyproject.toml +2 -2
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/LICENSE +0 -0
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/README.md +0 -0
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader/config.py +0 -0
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader/data_source.py +0 -0
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader.egg-info/SOURCES.txt +0 -0
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader.egg-info/dependency_links.txt +0 -0
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/nonebot_plugin_jmdownloader.egg-info/top_level.txt +0 -0
- {nonebot_plugin_jmdownloader-1.0.0 → nonebot_plugin_jmdownloader-1.0.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nonebot-plugin-jmdownloader
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: 基于 Nonebot2 的 JMComic 插件
|
|
5
5
|
Author-email: Misty02600 <xiao02600@gmail.com>
|
|
6
6
|
Project-URL: Repository, https://github.com/Misty02600/nonebot-plugin-jmdownloader
|
|
@@ -15,7 +15,7 @@ Requires-Dist: nonebot-plugin-waiter<1.0.0,>=0.8.1
|
|
|
15
15
|
Requires-Dist: nonebot-plugin-localstore<1.0.0,>=0.7.4
|
|
16
16
|
Requires-Dist: nonebot-plugin-apscheduler<1.0.0,>=0.5.0
|
|
17
17
|
Requires-Dist: nonebot-adapter-onebot<3.0.0,>=2.4.6
|
|
18
|
-
Requires-Dist: jmcomic>=2.5.
|
|
18
|
+
Requires-Dist: jmcomic>=2.5.35
|
|
19
19
|
Requires-Dist: pillow>=11.1.0
|
|
20
20
|
Requires-Dist: img2pdf>=0.6.0
|
|
21
21
|
Dynamic: license-file
|
|
@@ -2,12 +2,14 @@ import asyncio
|
|
|
2
2
|
import hashlib
|
|
3
3
|
import os
|
|
4
4
|
import random
|
|
5
|
+
from re import A
|
|
5
6
|
import shutil
|
|
6
7
|
import time
|
|
7
8
|
|
|
9
|
+
from httpx import get
|
|
8
10
|
from jmcomic import (JmcomicException, JmDownloader,
|
|
9
11
|
MissingAlbumPhotoException, create_option_by_str)
|
|
10
|
-
from nonebot import logger, on_command, require
|
|
12
|
+
from nonebot import logger, on_command, require, get_bot
|
|
11
13
|
from nonebot.adapters.onebot.v11 import (GROUP_ADMIN, GROUP_OWNER,
|
|
12
14
|
ActionFailed, Bot, GroupMessageEvent,
|
|
13
15
|
Message, MessageEvent, MessageSegment,
|
|
@@ -52,6 +54,7 @@ except JmcomicException as e:
|
|
|
52
54
|
|
|
53
55
|
results_per_page = plugin_config.jmcomic_results_per_page
|
|
54
56
|
|
|
57
|
+
|
|
55
58
|
# region jm功能指令
|
|
56
59
|
jm_download = on_command("jm下载", aliases={"JM下载"}, block=True, rule=check_group_and_user)
|
|
57
60
|
@jm_download.handle()
|
|
@@ -86,29 +89,32 @@ async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()):
|
|
|
86
89
|
else:
|
|
87
90
|
await jm_download.finish("该本子(或其tag)被禁止下载!")
|
|
88
91
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
92
|
+
try:
|
|
93
|
+
if str(user_id) not in bot.config.superusers:
|
|
94
|
+
data_manager.decrease_user_limit(user_id, 1)
|
|
95
|
+
user_limit_new = data_manager.get_user_limit(user_id)
|
|
96
|
+
message = Message()
|
|
97
|
+
message += f"jm{photo.id} | {photo.title}\n"
|
|
98
|
+
message += f"🎨 作者: {photo.author}\n"
|
|
99
|
+
message += "🔖 标签: " + " ".join(f"#{tag}" for tag in photo.tags) + "\n"
|
|
100
|
+
message += f"开始下载...\n你本周还有{user_limit_new}次下载次数!"
|
|
101
|
+
await jm_download.send(message)
|
|
102
|
+
else:
|
|
103
|
+
message = Message()
|
|
104
|
+
message += f"jm{photo.id} | {photo.title}\n"
|
|
105
|
+
message += f"🎨 作者: {photo.author}\n"
|
|
106
|
+
message += "🔖 标签: " + " ".join(f"#{tag}" for tag in photo.tags) + "\n"
|
|
107
|
+
message += "开始下载..."
|
|
108
|
+
await jm_download.send(message)
|
|
109
|
+
except ActionFailed:
|
|
110
|
+
await jm_download.send("本子信息可能被屏蔽,已开始下载")
|
|
105
111
|
|
|
106
112
|
try:
|
|
107
113
|
pdf_path = f"{cache_dir}/{photo.id}.pdf"
|
|
108
114
|
|
|
109
115
|
# 如果不存在,则下载
|
|
110
116
|
if not os.path.exists(pdf_path):
|
|
111
|
-
if not await download_photo_async(
|
|
117
|
+
if not await download_photo_async(downloader, photo):
|
|
112
118
|
await jm_download.finish("下载失败")
|
|
113
119
|
|
|
114
120
|
# 根据配置决定是否需要修改MD5
|
|
@@ -180,7 +186,7 @@ async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()):
|
|
|
180
186
|
avatar = await blur_image_async(avatar)
|
|
181
187
|
message += MessageSegment.image(avatar)
|
|
182
188
|
|
|
183
|
-
message_node = MessageSegment("node", {"name": "jm查询结果", "content": message})
|
|
189
|
+
message_node = MessageSegment("node", {"name": "jm查询结果", "uin": bot.self_id, "content": message})
|
|
184
190
|
messages = [message_node]
|
|
185
191
|
|
|
186
192
|
try:
|
|
@@ -222,6 +228,7 @@ async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()):
|
|
|
222
228
|
if data_manager.has_restricted_tag(photo.tags):
|
|
223
229
|
message_node = MessageSegment("node", {
|
|
224
230
|
"name": "jm搜索结果",
|
|
231
|
+
"uin": bot.self_id,
|
|
225
232
|
"content": blocked_message
|
|
226
233
|
})
|
|
227
234
|
else:
|
|
@@ -236,6 +243,7 @@ async def _(bot: Bot, event: MessageEvent, arg: Message = CommandArg()):
|
|
|
236
243
|
|
|
237
244
|
message_node = MessageSegment("node", {
|
|
238
245
|
"name": "jm搜索结果",
|
|
246
|
+
"uin": bot.self_id,
|
|
239
247
|
"content": node_content
|
|
240
248
|
})
|
|
241
249
|
messages.append(message_node)
|
|
@@ -306,7 +314,11 @@ async def handle_jm_next_page(bot: Bot, event: MessageEvent):
|
|
|
306
314
|
continue
|
|
307
315
|
|
|
308
316
|
if data_manager.has_restricted_tag(photo.tags):
|
|
309
|
-
message_node = MessageSegment("node", {
|
|
317
|
+
message_node = MessageSegment("node", {
|
|
318
|
+
"name": "jm搜索结果",
|
|
319
|
+
"uin": bot.self_id,
|
|
320
|
+
"content": blocked_message
|
|
321
|
+
})
|
|
310
322
|
else:
|
|
311
323
|
node_content = Message()
|
|
312
324
|
node_content += f"jm{photo.id} | {photo.title}\n"
|
|
@@ -317,7 +329,11 @@ async def handle_jm_next_page(bot: Bot, event: MessageEvent):
|
|
|
317
329
|
avatar = await blur_image_async(avatar)
|
|
318
330
|
node_content += MessageSegment.image(avatar)
|
|
319
331
|
|
|
320
|
-
message_node = MessageSegment("node", {
|
|
332
|
+
message_node = MessageSegment("node", {
|
|
333
|
+
"name": "jm搜索结果",
|
|
334
|
+
"uin": bot.self_id,
|
|
335
|
+
"content": node_content
|
|
336
|
+
})
|
|
321
337
|
messages.append(message_node)
|
|
322
338
|
|
|
323
339
|
try:
|
|
@@ -43,17 +43,17 @@ async def get_photo_info_async(client: JmcomicClient, photo_id):
|
|
|
43
43
|
return await asyncio.to_thread(get_photo_info, client, photo_id)
|
|
44
44
|
|
|
45
45
|
|
|
46
|
-
def download_photo(
|
|
46
|
+
def download_photo(downloader: JmDownloader, photo: JmPhotoDetail):
|
|
47
47
|
try:
|
|
48
48
|
with downloader as dler:
|
|
49
|
-
dler.download_by_photo_detail(photo
|
|
49
|
+
dler.download_by_photo_detail(photo)
|
|
50
50
|
return True
|
|
51
51
|
except JmcomicException as e:
|
|
52
52
|
logger.error(f"JMComic 下载失败: {e}")
|
|
53
53
|
return False
|
|
54
54
|
|
|
55
|
-
async def download_photo_async(
|
|
56
|
-
return await asyncio.to_thread(download_photo,
|
|
55
|
+
async def download_photo_async(downloader: JmDownloader, photo: JmPhotoDetail):
|
|
56
|
+
return await asyncio.to_thread(download_photo, downloader, photo)
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
def search_album(client: JmcomicClient, search_query: str, page: int = 1):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nonebot-plugin-jmdownloader
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: 基于 Nonebot2 的 JMComic 插件
|
|
5
5
|
Author-email: Misty02600 <xiao02600@gmail.com>
|
|
6
6
|
Project-URL: Repository, https://github.com/Misty02600/nonebot-plugin-jmdownloader
|
|
@@ -15,7 +15,7 @@ Requires-Dist: nonebot-plugin-waiter<1.0.0,>=0.8.1
|
|
|
15
15
|
Requires-Dist: nonebot-plugin-localstore<1.0.0,>=0.7.4
|
|
16
16
|
Requires-Dist: nonebot-plugin-apscheduler<1.0.0,>=0.5.0
|
|
17
17
|
Requires-Dist: nonebot-adapter-onebot<3.0.0,>=2.4.6
|
|
18
|
-
Requires-Dist: jmcomic>=2.5.
|
|
18
|
+
Requires-Dist: jmcomic>=2.5.35
|
|
19
19
|
Requires-Dist: pillow>=11.1.0
|
|
20
20
|
Requires-Dist: img2pdf>=0.6.0
|
|
21
21
|
Dynamic: license-file
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "nonebot-plugin-jmdownloader"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.2"
|
|
4
4
|
description = "基于 Nonebot2 的 JMComic 插件"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [{ name = "Misty02600", email = "xiao02600@gmail.com" }]
|
|
@@ -15,7 +15,7 @@ dependencies = [
|
|
|
15
15
|
"nonebot-plugin-localstore>=0.7.4,<1.0.0",
|
|
16
16
|
"nonebot-plugin-apscheduler>=0.5.0,<1.0.0",
|
|
17
17
|
"nonebot-adapter-onebot>=2.4.6,<3.0.0",
|
|
18
|
-
"jmcomic>=2.5.
|
|
18
|
+
"jmcomic>=2.5.35",
|
|
19
19
|
"pillow>=11.1.0",
|
|
20
20
|
"img2pdf>=0.6.0",
|
|
21
21
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|