1
1
import json
2
+ import re
3
+ from typing import Optional
2
4
3
5
import aiohttp
6
+ import chinese2digits as c2d
4
7
5
8
from anon import Storage
6
9
from anon .event import MessageEvent
7
10
from anon .logger import logger
8
- from anon .message import Image , ImageCategory
11
+ from anon .message import Image
9
12
from anon .plugin import PluginManager
10
13
11
14
pm = PluginManager ()
15
18
"r18" : 0 ,
16
19
"ai" : 0 ,
17
20
"level" : "0-2" ,
18
- "taste" : "1,2"
21
+ "taste" : "1,2" ,
19
22
}
20
23
21
24
22
- async def fetch_and_save_image (tag : list ) :
25
+ async def fetch_and_save_image (tag : list , num : int = 1 ) -> Optional [ list ] :
23
26
params = storage ['param' ].copy ()
27
+ params ["num" ] = num if 1 < num <= 5 else 1
24
28
if tag :
25
29
params ["tag" ] = tag
26
30
logger .info (f"tag:{ tag } ,params:{ params } " )
@@ -34,9 +38,12 @@ async def fetch_and_save_image(tag: list):
34
38
if not datas ["data" ]:
35
39
return None
36
40
37
- img_url = datas ["data" ][0 ]["urls" ]["original" ]
38
- img_url = img_url .replace ('i.pixiv.cat' , 'i.pixiv.re' )
39
- return img_url
41
+ img_url_list = []
42
+ for i_url in range (num ):
43
+ img_url = datas ["data" ][i_url ]["urls" ]["original" ]
44
+ img_url = img_url .replace ('i.pixiv.cat' , 'i.pixiv.re' )
45
+ img_url_list .append (img_url )
46
+ return img_url_list
40
47
41
48
42
49
@pm .register_event ([MessageEvent ])
@@ -59,4 +66,23 @@ async def handle_message(event: MessageEvent):
59
66
if img_url is None :
60
67
await event .reply ("图库查找无结果" , quote = True )
61
68
else :
62
- await event .reply (Image (img_url ), quote = False )
69
+ await event .reply (Image (img_url [0 ]), quote = False )
70
+ elif parts :
71
+ match = re .match (r'来(\d+|零|两|一|二|三|四|五|六|七|八|九)(张|份)(色图|涩图)' , parts [0 ])
72
+ if match :
73
+ quantity = match .group (1 )
74
+ try :
75
+ num = int (quantity )
76
+ except :
77
+ num = int (c2d .chineseToDigits (quantity ))
78
+ tag = parts [1 :] if len (parts ) > 1 else None
79
+ logger .info (f"数量: { num } , 标签: { tag } " )
80
+ img_url = await fetch_and_save_image (tag , num )
81
+ if img_url is None :
82
+ await event .reply ("图库查找无结果" , quote = True )
83
+ else :
84
+ index = 1
85
+ for i_url in img_url :
86
+ logger .info (f"第{ index } 份色图发送中" )
87
+ index += 1
88
+ await event .reply (Image (i_url ), quote = False )
0 commit comments