33
44from lagrange import Lagrange , install_loguru
55from lagrange .client .client import Client
6- from lagrange .client .events .group import GroupMessage
6+ from lagrange .client .events .group import GroupMessage , GroupSign , GroupReaction
77from 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
99
1010
1111async def msg_handler (client : Client , event : GroupMessage ):
12- #print(event)
12+ # print(event)
1313 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+ )
1517 await asyncio .sleep (5 )
1618 await client .recall_grp_msg (event .grp_id , msg_seq )
1719 elif event .msg .startswith ("imgs" ):
@@ -31,6 +33,45 @@ async def handle_kick(client: "Client", event: "ServerKick"):
3133 await client .stop ()
3234
3335
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+
3475lag = Lagrange (
3576 int (os .environ .get ("LAGRANGE_UIN" , "0" )),
3677 "linux" ,
@@ -41,6 +82,8 @@ async def handle_kick(client: "Client", event: "ServerKick"):
4182
4283lag .subscribe (GroupMessage , msg_handler )
4384lag .subscribe (ServerKick , handle_kick )
85+ lag .subscribe (GroupSign , handle_grp_sign )
86+ lag .subscribe (GroupReaction , handle_group_reaction )
4487
4588
4689lag .launch ()
0 commit comments