3
3
4
4
from lagrange import Lagrange , install_loguru
5
5
from lagrange .client .client import Client
6
- from lagrange .client .events .group import GroupMessage
6
+ from lagrange .client .events .group import GroupMessage , GroupSign , GroupReaction
7
7
from lagrange .client .events .service import ServerKick
8
- from lagrange .client .message .elems import At , Text
8
+ from lagrange .client .message .elems import At , Text , Quote , Emoji
9
9
10
10
11
11
async def msg_handler (client : Client , event : GroupMessage ):
12
- #print(event)
12
+ # print(event)
13
13
if event .msg .startswith ("114514" ):
14
- msg_seq = await client .send_grp_msg ([At .build (event ), Text ("1919810" )], event .grp_id )
14
+ msg_seq = await client .send_grp_msg (
15
+ [At .build (event ), Text ("1919810" )], event .grp_id
16
+ )
15
17
await asyncio .sleep (5 )
16
18
await client .recall_grp_msg (event .grp_id , msg_seq )
17
19
elif event .msg .startswith ("imgs" ):
@@ -31,6 +33,45 @@ async def handle_kick(client: "Client", event: "ServerKick"):
31
33
await client .stop ()
32
34
33
35
36
+ async def handle_grp_sign (client : "Client" , event : "GroupSign" ):
37
+ a = "闲着没事爱打卡,可以去找个班上"
38
+ k = None
39
+ uid = None
40
+ while True :
41
+ kk = await client .get_grp_members (event .grp_id , k )
42
+ for m in kk .body :
43
+ if m .account .uin == event .uin :
44
+ uid = m .account .uid
45
+ break
46
+ if uid :
47
+ break
48
+ if kk .next_key :
49
+ k = kk .next_key
50
+ else :
51
+ raise ValueError (f"cannot find member: { event .uin } " )
52
+
53
+ await client .send_grp_msg (
54
+ [At (f"@{ event .nickname } " , event .uin , uid ), Text (a )], event .grp_id
55
+ )
56
+
57
+
58
+ async def handle_group_reaction (client : "Client" , event : "GroupReaction" ):
59
+ msg = (await client .get_grp_msg (event .grp_id , event .seq ))[0 ]
60
+ mi = (await client .get_grp_member_info (event .grp_id , event .uid )).body [0 ]
61
+ if event .is_emoji :
62
+ e = Text (chr (event .emoji_id ))
63
+ else :
64
+ e = Emoji (event .emoji_id )
65
+ if event .is_increase :
66
+ m = "给你点了"
67
+ else :
68
+ m = "取消了"
69
+ await client .send_grp_msg (
70
+ [Quote .build (msg ), Text (f"{ mi .name .string if mi .name else mi .nickname } { m } " ), e ],
71
+ event .grp_id ,
72
+ )
73
+
74
+
34
75
lag = Lagrange (
35
76
int (os .environ .get ("LAGRANGE_UIN" , "0" )),
36
77
"linux" ,
@@ -41,6 +82,8 @@ async def handle_kick(client: "Client", event: "ServerKick"):
41
82
42
83
lag .subscribe (GroupMessage , msg_handler )
43
84
lag .subscribe (ServerKick , handle_kick )
85
+ lag .subscribe (GroupSign , handle_grp_sign )
86
+ lag .subscribe (GroupReaction , handle_group_reaction )
44
87
45
88
46
89
lag .launch ()
0 commit comments