summaryrefslogtreecommitdiff
path: root/utils/utils_switch
diff options
context:
space:
mode:
authorKyomotoi <[email protected]>2020-10-07 13:03:27 +0800
committerKyomotoi <[email protected]>2020-10-07 13:03:27 +0800
commitcec804951b97bcab81551bb8c7a1a1e1c473aaa7 (patch)
tree03b7204af6ebc869e887494ab2609a6e9b7fd72c /utils/utils_switch
parentab467e8788b7ef8382bab63fb1a91c8b6305c501 (diff)
downloadATRI-cec804951b97bcab81551bb8c7a1a1e1c473aaa7.tar.gz
ATRI-cec804951b97bcab81551bb8c7a1a1e1c473aaa7.tar.bz2
ATRI-cec804951b97bcab81551bb8c7a1a1e1c473aaa7.zip
[Update]
Diffstat (limited to 'utils/utils_switch')
-rw-r--r--utils/utils_switch/__init__.py151
-rw-r--r--utils/utils_switch/switch.json1
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