diff options
Diffstat (limited to 'ATRI/plugins/wife')
-rw-r--r-- | ATRI/plugins/wife/__init__.py | 79 | ||||
-rw-r--r-- | ATRI/plugins/wife/data_source.py | 51 |
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) |