summaryrefslogtreecommitdiff
path: root/ATRI/plugins/console/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'ATRI/plugins/console/__init__.py')
-rw-r--r--ATRI/plugins/console/__init__.py110
1 files changed, 0 insertions, 110 deletions
diff --git a/ATRI/plugins/console/__init__.py b/ATRI/plugins/console/__init__.py
deleted file mode 100644
index 39fcc26..0000000
--- a/ATRI/plugins/console/__init__.py
+++ /dev/null
@@ -1,110 +0,0 @@
-from datetime import datetime
-
-from nonebot.params import ArgPlainText
-from nonebot.adapters.onebot.v11 import PrivateMessageEvent, GroupMessageEvent
-
-from ATRI import conf
-from ATRI.log import log
-from ATRI.service import Service
-from ATRI.permission import MASTER
-from ATRI.message import MessageBuilder
-from ATRI.utils.apscheduler import scheduler
-
-from .data_source import AuthDealer, get_host_ip
-
-
-plugin = (
- Service("控制台")
- .document("前端管理页面")
- .only_admin(True)
- .permission(MASTER)
- .main_cmd("/con")
-)
-
-
-async def __del_auth_key():
- await AuthDealer.clear()
- log.warning("控制台验证密钥已过期")
-
-
-gen_console_key = plugin.cmd_as_group("auth", "获取进入网页后台的凭证")
-
-
-@gen_console_key.got("is_pub_n", "咱的运行环境是否有公网(y/n)")
-async def _(event: PrivateMessageEvent, is_pub_n: str = ArgPlainText("is_pub_n")):
- is_access_key = conf.BotConfig.access_token
- if not is_access_key:
- await gen_console_key.finish(
- MessageBuilder("缺少设置: access_token")
- .text("请先填写该内容, 以保证ATRI与协议端链接的安全性")
- .text("填写并重启, 方可启用控制台")
- .text("Tip: 该内容请尽可能地复杂, 请勿使用中文")
- )
-
- auth_info = AuthDealer.get()
- if auth_info:
- now_time = datetime.now().timestamp()
- if now_time < auth_info.dead_time:
- raw_last_time = auth_info.dead_time - now_time
- last_time = datetime.fromtimestamp(raw_last_time).minute
- await gen_console_key.finish(
- MessageBuilder("之前生成的密钥还在有效时间内奥")
- .text(f"Token: {auth_info.token}")
- .text(f"剩余有效时间: {last_time} min")
- )
- await AuthDealer.clear()
-
- if is_pub_n != "y":
- host = str(await get_host_ip(False))
- await gen_console_key.send("没有公网吗...嗯知道了")
- else:
- host = str(await get_host_ip(True))
- port = conf.BotConfig.port
- auth = AuthDealer()
- data = await auth.store()
-
- msg = (
- MessageBuilder("控制台信息已生成!")
- .text(f"请访问: {host}:{port}")
- .text(f"Token: {auth.get_token()}")
- .text("该 token 有效时间为 15min")
- )
-
- scheduler.add_job(
- __del_auth_key,
- name="清除后台验证凭证",
- next_run_time=datetime.fromtimestamp(data.dead_time),
- misfire_grace_time=15,
- )
-
- await gen_console_key.finish(msg)
-
-
-@gen_console_key.handle()
-async def _(event: GroupMessageEvent):
- await gen_console_key.finish("请私戳咱获取(")
-
-
-del_console_key = plugin.cmd_as_group("del", "销毁进入网页后台的凭证")
-
-
-@del_console_key.got("is_sure_d", "...你确定吗(y/n)")
-async def _(is_sure: str = ArgPlainText("is_sure_d")):
- if is_sure != "y":
- await del_console_key.finish("反悔了呢...")
-
- data = AuthDealer.get()
- if data is None:
- await del_console_key.finish("你还没向咱索取凭证呢...私戳咱键入 /con.auth 以获取")
-
- await AuthDealer.clear()
-
- await del_console_key.finish("销毁成功!如需再次获取: /con.auth")
-
-
-import nonebot
-
-from .backend import app
-
-driver = nonebot.get_app()
-driver.mount("/", app, name="test")