summaryrefslogtreecommitdiff
path: root/ATRI/plugins/console/driver/view.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/console/driver/view.py')
-rw-r--r--ATRI/plugins/console/driver/view.py101
1 files changed, 101 insertions, 0 deletions
diff --git a/ATRI/plugins/console/driver/view.py b/ATRI/plugins/console/driver/view.py
new file mode 100644
index 0000000..624e41f
--- /dev/null
+++ b/ATRI/plugins/console/driver/view.py
@@ -0,0 +1,101 @@
+from ..data_source import Console
+from ..listener import get_message_deal_info
+from .api import (
+ control_service,
+ edit_block_list,
+ get_block_list,
+ get_processing_data,
+ get_service_list,
+)
+
+
+def auth_token(token: str) -> tuple:
+ auth_data: dict = Console().get_auth_info()
+ if not auth_data.get("token", None):
+ return False, {"status": 500, "msg": "This bot is not create auth data yet."}
+ _token = auth_data["token"]
+ if token != _token:
+ return False, {"status": 403, "msg": "Token error, please check again."}
+ else:
+ return True, {"status": 200, "msg": "OK"}
+
+
+def handle_base_uri():
+ return {"status": 204, "msg": "This path just for console load."}
+
+
+def handle_auther(token: str):
+ auth, data = auth_token(token)
+ return data if auth else data
+
+
+def handle_runtime_info(token: str):
+ auth, data = auth_token(token)
+ if not auth:
+ return data
+
+ plat, bot = get_processing_data()
+ return {"status": 200, "data": {"platform": plat, "bot": bot}}
+
+
+def handle_message_deal_info(token: str):
+ auth, data = auth_token(token)
+ if not auth:
+ return data
+
+ return {"status": 200, "data": get_message_deal_info()}
+
+
+def handle_get_service_list(token: str):
+ auth, data = auth_token(token)
+ if not auth:
+ return data
+
+ return {"status": 200, "data": get_service_list()}
+
+
+def handle_control_service(
+ token: str,
+ service: str,
+ is_enabled: int = 1,
+ enabled_user: str = str(),
+ enabled_group: str = str(),
+ disable_user: str = str(),
+ disable_group: str = str(),
+):
+ auth, data = auth_token(token)
+ if not auth:
+ return data
+
+ is_ok, data = control_service(
+ service, is_enabled, enabled_user, enabled_group, disable_user, disable_group
+ )
+ if not is_ok:
+ return {"status": 422, "msg": "Dealing service data failed"}
+
+ return {"status": 200, "data": data}
+
+
+def handle_get_block_list(token: str):
+ auth, data = auth_token(token)
+ if not auth:
+ return data
+
+ return {"status": 200, "data": get_block_list()}
+
+
+def handle_edit_block(
+ token: str,
+ is_enabled: bool,
+ user_id: str = str(),
+ group_id: str = str(),
+):
+ auth, data = auth_token(token)
+ if not auth:
+ return data
+
+ is_ok, data = edit_block_list(is_enabled, user_id, group_id)
+ if not is_ok:
+ return {"status": 422, "msg": "Dealing block data failed"}
+
+ return {"status": 200, "data": data}