diff options
author | Kyomotoi <[email protected]> | 2020-10-07 13:03:27 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2020-10-07 13:03:27 +0800 |
commit | cec804951b97bcab81551bb8c7a1a1e1c473aaa7 (patch) | |
tree | 03b7204af6ebc869e887494ab2609a6e9b7fd72c /utils/utils_switch | |
parent | ab467e8788b7ef8382bab63fb1a91c8b6305c501 (diff) | |
download | ATRI-cec804951b97bcab81551bb8c7a1a1e1c473aaa7.tar.gz ATRI-cec804951b97bcab81551bb8c7a1a1e1c473aaa7.tar.bz2 ATRI-cec804951b97bcab81551bb8c7a1a1e1c473aaa7.zip |
[Update]
Diffstat (limited to 'utils/utils_switch')
-rw-r--r-- | utils/utils_switch/__init__.py | 151 | ||||
-rw-r--r-- | utils/utils_switch/switch.json | 1 |
2 files changed, 152 insertions, 0 deletions
diff --git a/utils/utils_switch/__init__.py b/utils/utils_switch/__init__.py new file mode 100644 index 0000000..5c10a85 --- /dev/null +++ b/utils/utils_switch/__init__.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import os +import json +from pathlib import Path +from typing import Optional + +def checkSwitch(func_name: str, group: str) -> bool: + """ + :说明: + + 判断此功能针对 群 或 全体 是否开启。 + + :参数: + + * ``func_name: str``: 功能名称 + * ``group: str``: 功能触发所在群号 + + :返回: + + 是:True | 否:False + + :用法: + + .. code-block:: python + + switch(func_name=Func, group=123456789) + + """ + file_switch_all = Path('.') / 'utils' / 'utils_switch' / 'switch.json' + file_switch_alone = Path('.') / 'ATRI' / 'data' / 'data_Group' / f'{group}' / 'switch.json' + + try: + with open(file_switch_all, 'r') as f: + data_switch_all = json.load(f) + except: + data_switch_all = {} + data_switch_all["anime-setu"] = "True" + data_switch_all["anime-pic-search"] = "True" + data_switch_all["anime-vid-search"] = "True" + data_switch_all["ai-face"] = "True" + + with open(file_switch_all, 'w') as f: + f.write(json.dumps(data_switch_all)) + f.close() + + try: + with open(file_switch_alone, 'r') as f: + data_switch_alone = json.load(f) + except: + data_switch_alone = {} + try: + os.mkdir(Path('.') / 'ATRI' / 'data' / 'data_Group' / f'{group}') + except: + pass + + data_switch_alone["anime-setu"] = "True" + data_switch_alone["anime-pic-search"] = "True" + data_switch_alone["anime-vid-search"] = "True" + data_switch_alone["ai-face"] = "True" + + with open(file_switch_alone, 'w') as f: + f.write(json.dumps(data_switch_alone)) + f.close() + + if data_switch_all[func_name] == "True": + if data_switch_alone[func_name] == "True": + return True + else: + return False + else: + return False + +def controlSwitch(func_name: str, control: bool, group: Optional[str] = None) -> str: + """ + :说明: + + 目标功能针对 群 或 全体 开启或关闭。 + + :参数: + + * ``func_name: str``: 功能名称 + * ``control: bool``: 开启 / 关闭 + * ``group: Optional[str] = None``: 对应群号,若不传入则为全局 + + :返回: + + None + + :用法: + + .. code-block:: python + + controlSwitch(func_name=Func, group=123456789) + + """ + file_switch_all = Path('.') / 'utils' / 'utils_switch' / 'switch.json' + + if group: + file_switch_group = Path('.') / 'ATRI' / 'data' / 'data_Group' / f'{group}' / 'switch.json' + try: + with open(file_switch_group, 'r') as f: + data_switch_group = json.load(f) + except: + data_switch_group = {} + + if data_switch_group[f"{func_name}"]: + pass + else: + return f"Can't find func({func_name})" + + data_switch_group[f"{func_name}"] = f"{control}" + + with open(file_switch_group, 'w') as f: + f.write(json.dumps(data_switch_group)) + f.close() + + else: + pass + + try: + with open(file_switch_all, 'r') as f: + data_switch_all = json.load(f) + except: + data_switch_all = {} + + if data_switch_all[f"{func_name}"]: + pass + else: + return f"Can't find func({func_name})" + + data_switch_all[f"{func_name}"] = f"{control}" + + with open(file_switch_all, 'w') as f: + f.write(json.dumps(data_switch_all)) + f.close() + + if control == True: + if group: + msg = f"({func_name}) has been opened for group ({group})!" + else: + msg = f"({func_name}) has been opened!" + + else: + if group: + msg = f"({func_name}) has been closed for group ({group})!" + else: + msg = f"({func_name}) has been closed!" + + return msg
\ No newline at end of file diff --git a/utils/utils_switch/switch.json b/utils/utils_switch/switch.json new file mode 100644 index 0000000..9b6bb22 --- /dev/null +++ b/utils/utils_switch/switch.json @@ -0,0 +1 @@ +{"anime-setu": "True", "anime-pic-search": "True", "anime-vid-search": "True", "all-off-anime-setu": "True"}
\ No newline at end of file |