import os import json from pathlib import Path WIFE_DIR = Path(".") / "ATRI" / "data" / "database" / "wife" MERRY_LIST_PATH = WIFE_DIR / "merry_list.json" os.makedirs(WIFE_DIR, exist_ok=True) class Tsuma: @staticmethod def _load_tsuma() -> dict: try: return json.loads(MERRY_LIST_PATH.read_bytes()) except FileNotFoundError: 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: 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']}" return msg, True else: return "悲——你还没老婆...", False @classmethod def inquire_tsuma(cls, user: str) -> str: data = cls._load_tsuma() if user in data: 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 事件 if if_h: return check_repo else: data = cls._load_tsuma() data[user] = { "nickname": d["nickname"], "gender": d["gender"], "lassie": { "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"], "lassie": { "nickname": d["nickname"], "qq": user, "gender": d["gender"], }, } cls._store_tsuma(data) msg = ( f"> {d['lassie']['nickname']}({d['lassie']['qq']})\n" f"恭喜成为 {d['nickname']} 的老婆~⭐" ) return msg @classmethod def divorce(cls, user: str) -> str: 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) return msg