diff options
Diffstat (limited to 'ATRI/plugins/status')
-rw-r--r-- | ATRI/plugins/status/__init__.py | 10 | ||||
-rw-r--r-- | ATRI/plugins/status/data_source.py | 37 |
2 files changed, 24 insertions, 23 deletions
diff --git a/ATRI/plugins/status/__init__.py b/ATRI/plugins/status/__init__.py index ee90c86..a8c532b 100644 --- a/ATRI/plugins/status/__init__.py +++ b/ATRI/plugins/status/__init__.py @@ -2,12 +2,16 @@ from nonebot import get_bot from ATRI import conf from ATRI.log import log +from ATRI.service import Service from ATRI.utils.apscheduler import scheduler from .data_source import Status -ping = Status().on_command("/ping", "检测bot简单信息处理速度") +stat = Service("状态").document("检查自身状态") + + +ping = stat.on_command("/ping", "检测bot简单信息处理速度") @ping.handle() @@ -15,7 +19,7 @@ async def _(): await ping.finish(Status.ping()) -status = Status().on_command("/status", "查看运行资源占用") +status = stat.on_command("/status", "查看运行资源占用") @status.handle() @@ -30,7 +34,7 @@ info_msg = "アトリは高性能ですから!" @scheduler.scheduled_job("interval", name="状态检查", minutes=10, misfire_grace_time=15) # type: ignore async def _(): log.info("开始检查资源消耗...") - msg, stat = Status().get_status() + msg, stat = Status.get_status() if not stat: log.warning(msg) diff --git a/ATRI/plugins/status/data_source.py b/ATRI/plugins/status/data_source.py index cede6cf..9bff1c3 100644 --- a/ATRI/plugins/status/data_source.py +++ b/ATRI/plugins/status/data_source.py @@ -4,30 +4,27 @@ import psutil from datetime import datetime from ATRI.service import Service -from ATRI.rule import is_in_service +from ATRI.message import MessageBuilder from ATRI.exceptions import GetStatusError -_status_msg = """ -> Status Overview +_STATUS_MSG = ( + MessageBuilder("> Status Overview"). + text("[CPU: {b_cpu}% of {p_cpu}%]") + .text("[Memory: {b_mem} of {p_mem}%]") + .text("[Disk usage: {p_disk}%]") + .text("") + .text("[Net sent: {inteSENT}MB]") + .text("[Net recv: {inteRECV}MB]") + .text("") + .text("[Bot runtime: {bot_time}]") + .text("[Platform runtime: {boot_time}]") + .text("{msg}") + .done() +) -[CPU: {b_cpu}% of {p_cpu}%] -[Memory: {b_mem} of {p_mem}%] -[Disk usage: {p_disk}%] - -[Net sent: {inteSENT}MB] -[Net recv: {inteRECV}MB] - -[Bot runtime: {bot_time}] -[Platform runtime: {boot_time}] -{msg} -""".strip() - - -class Status(Service): - def __init__(self): - Service.__init__(self, "状态", "检查自身状态", rule=is_in_service("状态")) +class Status: @staticmethod def ping() -> str: return "I'm fine." @@ -75,7 +72,7 @@ class Status(Service): else: is_ok = True - msg0 = _status_msg.format( + msg0 = _STATUS_MSG.format( p_cpu=cpu, p_mem=mem, p_disk=disk, |