summaryrefslogtreecommitdiff
path: root/ATRI/plugins/wife
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/wife')
-rw-r--r--ATRI/plugins/wife/__init__.py79
-rw-r--r--ATRI/plugins/wife/data_source.py51
2 files changed, 57 insertions, 73 deletions
diff --git a/ATRI/plugins/wife/__init__.py b/ATRI/plugins/wife/__init__.py
index 3f89214..2b6f6a3 100644
--- a/ATRI/plugins/wife/__init__.py
+++ b/ATRI/plugins/wife/__init__.py
@@ -6,8 +6,8 @@ from nonebot.typing import T_State
from nonebot.adapters.cqhttp import (
Bot,
MessageEvent,
- GroupMessageEvent,
- PrivateMessageEvent
+ GroupMessageEvent,
+ PrivateMessageEvent,
)
from ATRI.service import Service as sv
@@ -26,104 +26,91 @@ __doc__ = """
我要离婚 # 离婚...
"""
-roll_wife = sv.on_command(
- cmd='抽老婆',
- docs=__doc__,
- rule=is_in_service('抽老婆')
-)
+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']
+ 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} 的老婆!究竟是谁呢~?"
- )
+
+ 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']
+ luck_qq = luck_user["user_id"]
if user != luck_qq:
break
-
- luck_gender = luck_user['sex']
- luck_user = luck_user['nickname']
+
+ 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
- }
+ "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起...该功能只对群聊开放(')
+ await roll_wife.finish("对8起...该功能只对群聊开放(")
-inquire_wife = sv.on_command(
- cmd="查老婆",
- rule=is_in_service('抽老婆')
-)
+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(' ')
+ 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'))
+ await inquire_wife.finish(Tsuma.inquire_tsuma(aim).replace("你", "ta"))
-want_divorce = sv.on_command(
- cmd="我要离婚",
- rule=is_in_service('抽老婆')
-)
+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
+ state["is_d"] = msg
-@want_divorce.got('is_d', prompt="你确定吗?(是/否)")
+
+@want_divorce.got("is_d", prompt="你确定吗?(是/否)")
async def _deal_div(bot: Bot, event: MessageEvent, state: T_State) -> None:
- msg = state['is_d']
+ msg = state["is_d"]
user = str(event.user_id)
name = event.sender.nickname
-
- if msg in ['是', '确定']:
+
+ if msg in ["是", "确定"]:
await want_divorce.finish(Tsuma.divorce(user))
else:
- await want_divorce.finish(f'({name})回心转意了!')
+ await want_divorce.finish(f"({name})回心转意了!")
diff --git a/ATRI/plugins/wife/data_source.py b/ATRI/plugins/wife/data_source.py
index f01985a..9665351 100644
--- a/ATRI/plugins/wife/data_source.py
+++ b/ATRI/plugins/wife/data_source.py
@@ -3,8 +3,8 @@ import json
from pathlib import Path
-WIFE_DIR = Path('.') / 'ATRI' / 'data' / 'database' / 'wife'
-MERRY_LIST_PATH = WIFE_DIR / 'merry_list.json'
+WIFE_DIR = Path(".") / "ATRI" / "data" / "database" / "wife"
+MERRY_LIST_PATH = WIFE_DIR / "merry_list.json"
os.makedirs(WIFE_DIR, exist_ok=True)
@@ -14,27 +14,24 @@ class Tsuma:
try:
return json.loads(MERRY_LIST_PATH.read_bytes())
except FileNotFoundError:
- with open(MERRY_LIST_PATH, 'w') as r:
+ with open(MERRY_LIST_PATH, "w") as r:
r.write(json.dumps({}, indent=4))
return dict()
-
+
@staticmethod
def _store_tsuma(data: dict) -> None:
- with open(MERRY_LIST_PATH, 'w') as r:
+ with open(MERRY_LIST_PATH, "w") as r:
r.write(json.dumps(data, indent=4))
-
+
@classmethod
def check_tsuma(cls, user: str):
data = cls._load_tsuma()
if user in data:
- msg = (
- "阿,你已经有老婆惹!"
- f"ta是:{data[user]['lassie']['nickname']}"
- )
+ msg = "阿,你已经有老婆惹!" f"ta是:{data[user]['lassie']['nickname']}"
return msg, True
else:
return "悲——你还没老婆...", False
-
+
@classmethod
def inquire_tsuma(cls, user: str) -> str:
data = cls._load_tsuma()
@@ -42,7 +39,7 @@ class Tsuma:
return f"你的老婆是:{data[user]['lassie']['nickname']} 哦~❤"
else:
return "悲——你还没老婆..."
-
+
@classmethod
def got_tsuma(cls, user: str, d: dict) -> str:
check_repo, if_h = cls.check_tsuma(user) # 防止出现多人同时操作导致 NTR 事件
@@ -51,27 +48,27 @@ class Tsuma:
else:
data = cls._load_tsuma()
data[user] = {
- "nickname": d['nickname'],
- "gender": d['gender'],
+ "nickname": d["nickname"],
+ "gender": d["gender"],
"lassie": {
- "nickname": d['lassie']['nickname'],
- "qq": d['lassie']['qq'],
- "gender": d['lassie']['gender']
- }
+ "nickname": d["lassie"]["nickname"],
+ "qq": d["lassie"]["qq"],
+ "gender": d["lassie"]["gender"],
+ },
}
cls._store_tsuma(data)
-
- data[d['lassie']['qq']] = {
- "nickname": d['lassie']['nickname'],
- "gender": d['lassie']['gender'],
+
+ data[d["lassie"]["qq"]] = {
+ "nickname": d["lassie"]["nickname"],
+ "gender": d["lassie"]["gender"],
"lassie": {
- "nickname": d['nickname'],
+ "nickname": d["nickname"],
"qq": user,
- "gender": d['gender']
- }
+ "gender": d["gender"],
+ },
}
cls._store_tsuma(data)
-
+
msg = (
f"> {d['lassie']['nickname']}({d['lassie']['qq']})\n"
f"恭喜成为 {d['nickname']} 的老婆~⭐"
@@ -83,7 +80,7 @@ class Tsuma:
data = cls._load_tsuma()
if not user in data:
return "悲——你还没老婆。。"
-
+
msg = f"悲——,({data[user]['nickname']})抛弃了({data[user]['lassie']['nickname']})"
del data[user]
cls._store_tsuma(data)