1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
import re
import asyncio
from random import choice
from nonebot.typing import T_State
from nonebot.adapters.cqhttp import (
Bot,
MessageEvent,
GroupMessageEvent,
PrivateMessageEvent,
)
from ATRI.service import Service as sv
from ATRI.rule import is_in_service
from ATRI.utils.limit import is_too_exciting
from .data_source import Tsuma
__doc__ = """
好欸!是老婆!
权限组:所有人
用法:
抽老婆 # 获取一位老婆
查老婆 # 查询老婆,如+at对象可查询对方
我要离婚 # 离婚...
"""
roll_wife = sv.on_command(cmd="抽老婆", docs=__doc__, rule=is_in_service("抽老婆"))
@roll_wife.handle()
async def _roll_wife(bot: Bot, event: GroupMessageEvent) -> None:
user = event.user_id
gender = event.sender.sex
group = event.group_id
user_name = await bot.get_group_member_info(group_id=group, user_id=user)
user_name = user_name["nickname"]
run = is_too_exciting(user, 1, seconds=5)
if not run:
return
check_repo, if_h = Tsuma.check_tsuma(str(user))
if if_h:
await roll_wife.finish(check_repo)
msg = "5秒后咱将随机抽取一位群友成为\n" f"{user_name} 的老婆!究竟是谁呢~?"
await bot.send(event, msg)
await asyncio.sleep(5)
async def get_luck_user():
luck_list = await bot.get_group_member_list(group_id=group)
return choice(luck_list)
while True:
luck_user = await get_luck_user()
luck_qq = luck_user["user_id"]
if user != luck_qq:
break
luck_gender = luck_user["sex"]
luck_user = luck_user["nickname"]
d = {
"nickname": user_name,
"gender": gender,
"lassie": {"nickname": luck_user, "qq": luck_qq, "gender": luck_gender},
}
if str(luck_qq) == str(event.self_id):
Tsuma.got_tsuma(str(user), d)
msg = "老婆竟是我自己~❤"
else:
msg = Tsuma.got_tsuma(str(user), d)
await roll_wife.finish(msg)
@roll_wife.handle()
async def _no_pr(bot: Bot, event: PrivateMessageEvent) -> None:
await roll_wife.finish("对8起...该功能只对群聊开放(")
inquire_wife = sv.on_command(cmd="查老婆", rule=is_in_service("抽老婆"))
@inquire_wife.handle()
async def _inq_wife(bot: Bot, event: MessageEvent) -> None:
msg = str(event.message).split(" ")
if msg[0] == "":
user = str(event.user_id)
await inquire_wife.finish(Tsuma.inquire_tsuma(user))
else:
aim = re.findall(r"qq=(.*?)]", msg[0])[0]
await inquire_wife.finish(Tsuma.inquire_tsuma(aim).replace("你", "ta"))
want_divorce = sv.on_command(cmd="我要离婚", rule=is_in_service("抽老婆"))
@want_divorce.handle()
async def _want_div(bot: Bot, event: MessageEvent, state: T_State) -> None:
msg = str(event.message).strip()
if msg:
state["is_d"] = msg
@want_divorce.got("is_d", prompt="你确定吗?(是/否)")
async def _deal_div(bot: Bot, event: MessageEvent, state: T_State) -> None:
msg = state["is_d"]
user = str(event.user_id)
name = event.sender.nickname
if msg in ["是", "确定"]:
await want_divorce.finish(Tsuma.divorce(user))
else:
await want_divorce.finish(f"({name})回心转意了!")
|