summaryrefslogtreecommitdiff
path: root/ATRI/plugins/wife/data_source.py
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2021-05-04 14:27:56 +0800
committerKyomotoi <[email protected]>2021-05-04 14:27:56 +0800
commitea7f48011c34fdaec7e91af7eb373c8174e439e6 (patch)
treee4f14eaacde37774d49e7f98ac1ff4635049d80a /ATRI/plugins/wife/data_source.py
parent07a7e41f72cfa9dfd207a04445f4aa5b0b6fa3ce (diff)
downloadATRI-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.py90
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