diff options
Diffstat (limited to 'ATRI/utils/utils_history')
-rw-r--r-- | ATRI/utils/utils_history/__init__.py | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/ATRI/utils/utils_history/__init__.py b/ATRI/utils/utils_history/__init__.py new file mode 100644 index 0000000..3aae3fa --- /dev/null +++ b/ATRI/utils/utils_history/__init__.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +# -*- encoding: utf-8 -*- +''' +@File : __init__.py +@Time : 2020/11/07 14:33:22 +@Author : Kyomotoi +@Contact : [email protected] +@Github : https://github.com/Kyomotoi +@License : Copyright © 2018-2020 Kyomotoi, All Rights Reserved. +''' +__author__ = 'kyomotoi' + +import os +import json +import datetime +from pathlib import Path +from typing import Optional + + +def saveMessage(message_id: str, + message: str, + user: str, + group: Optional[str] = None) -> None: + """储存消息""" + GROUP_PATH = Path( + '.' + ) / 'ATRI' / 'data' / 'data_Group' / f'{group}' / f"{datetime.datetime.now().strftime('%Y-%m-%d')}-message.json" + PRIVATE_PATH = Path( + '.' + ) / 'ATRI' / 'data' / 'data_Private_Message' / f"{datetime.datetime.now().strftime('%Y-%m-%d')}-private-message.json" + + # 检查目标文件目录 + if not GROUP_PATH.is_file(): + os.makedirs(Path('.') / 'ATRI' / 'data' / 'data_Group', exist_ok=True) + os.makedirs(Path('.') / 'ATRI' / 'data' / 'data_Group' / f'{group}', + exist_ok=True) + + with open(GROUP_PATH, 'w') as f: + f.write(json.dumps({})) + + if not PRIVATE_PATH.is_file(): + os.makedirs(Path('.') / 'ATRI' / 'data' / 'data_Private_Message', + exist_ok=True) + + with open(PRIVATE_PATH, 'w') as f: + f.write(json.dumps({})) + + # 加载目标文件 + with open(GROUP_PATH, 'r') as f: + DATA_GROUP = json.load(f) + + with open(PRIVATE_PATH, 'r') as f: + DATA_PRIVATE = json.load(f) + + # 写入 + if group: + DATA_GROUP[f"{message_id}"] = { + "message": f"{message}", + "user_id": f"{user}", + "group_id": f"{group}" + } + + with open(GROUP_PATH, 'w') as f: + f.write(json.dumps(DATA_GROUP)) + + else: + DATA_PRIVATE[f"{message_id}"] = { + "message": f"{message}", + "user_id": f"{user}" + } + + with open(PRIVATE_PATH, 'w') as f: + f.write(json.dumps(DATA_PRIVATE)) + + +def getMessage(message_id: str, group: Optional[str] = None) -> dict: + ''' + 传入消息id以获取对应信息 + + :return: dict + ''' + GROUP_PATH = Path( + '.' + ) / 'ATRI' / 'data' / 'data_Group' / f'{group}' / f"{datetime.datetime.now().strftime('%Y-%m-%d')}-message.json" + PRIVATE_PATH = Path( + '.' + ) / 'ATRI' / 'data' / 'data_Private_Message' / f"{datetime.datetime.now().strftime('%Y-%m-%d')}-private-message.json" + + if group: + try: + with open(GROUP_PATH, 'r') as f: + data_group = json.load(f) + return data_group[message_id] + + except: + return {"status": 0} + + else: + try: + with open(PRIVATE_PATH, 'r') as f: + data_private = json.load(f) + return data_private[message_id] + + except: + return {"status": 0} |