diff options
author | Kyomotoi <[email protected]> | 2021-05-04 14:27:56 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2021-05-04 14:27:56 +0800 |
commit | ea7f48011c34fdaec7e91af7eb373c8174e439e6 (patch) | |
tree | e4f14eaacde37774d49e7f98ac1ff4635049d80a /ATRI/plugins/wife/data_source.py | |
parent | 07a7e41f72cfa9dfd207a04445f4aa5b0b6fa3ce (diff) | |
download | ATRI-ea7f48011c34fdaec7e91af7eb373c8174e439e6.tar.gz ATRI-ea7f48011c34fdaec7e91af7eb373c8174e439e6.tar.bz2 ATRI-ea7f48011c34fdaec7e91af7eb373c8174e439e6.zip |
✨🐛 更新
新增:老婆!
新增:涩图
修复:manage中出现的bug
优化:nsfw不再用float,换为int
Diffstat (limited to 'ATRI/plugins/wife/data_source.py')
-rw-r--r-- | ATRI/plugins/wife/data_source.py | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/ATRI/plugins/wife/data_source.py b/ATRI/plugins/wife/data_source.py new file mode 100644 index 0000000..f01985a --- /dev/null +++ b/ATRI/plugins/wife/data_source.py @@ -0,0 +1,90 @@ +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 |