diff options
Diffstat (limited to 'ATRI/plugins/status')
-rw-r--r-- | ATRI/plugins/status/__init__.py | 6 | ||||
-rw-r--r-- | ATRI/plugins/status/data_source.py | 11 |
2 files changed, 10 insertions, 7 deletions
diff --git a/ATRI/plugins/status/__init__.py b/ATRI/plugins/status/__init__.py index 888a0a7..0567bb4 100644 --- a/ATRI/plugins/status/__init__.py +++ b/ATRI/plugins/status/__init__.py @@ -6,7 +6,6 @@ from .data_source import IsSurvive ping = IsSurvive().on_command("/ping", "检测bot简单信息处理速度") - @ping.handle() async def _ping(bot: Bot, event: MessageEvent): await ping.finish(IsSurvive.ping()) @@ -14,15 +13,18 @@ async def _ping(bot: Bot, event: MessageEvent): status = IsSurvive().on_command("/status", "查看运行资源占用") - @status.handle() async def _status(bot: Bot, event: MessageEvent): msg, _ = IsSurvive.get_status() await status.finish(msg) +info_msg = "アトリは高性能ですから!" + + @scheduler.scheduled_job("interval", minutes=10, misfire_grace_time=15) async def _status_checking(): + global info_msg msg, stat = IsSurvive().get_status() if not stat: await status.finish(msg) diff --git a/ATRI/plugins/status/data_source.py b/ATRI/plugins/status/data_source.py index 189f568..c353313 100644 --- a/ATRI/plugins/status/data_source.py +++ b/ATRI/plugins/status/data_source.py @@ -14,13 +14,14 @@ __doc__ = """ class IsSurvive(Service): + def __init__(self): Service.__init__(self, "状态", __doc__, rule=is_in_service("状态")) @staticmethod def ping() -> str: return "I'm fine." - + @staticmethod def get_status(): log.info("开始检查资源消耗...") @@ -30,7 +31,7 @@ class IsSurvive(Service): disk = psutil.disk_usage("/").percent inteSENT = psutil.net_io_counters().bytes_sent / 1000000 # type: ignore inteRECV = psutil.net_io_counters().bytes_recv / 1000000 # type: ignore - + now = time.time() boot = psutil.boot_time() up_time = str( @@ -39,7 +40,7 @@ class IsSurvive(Service): ) except GetStatusError: raise GetStatusError("Failed to get status.") - + msg = "アトリは、高性能ですから!" if cpu > 90: # type: ignore msg = "咱感觉有些头晕..." @@ -56,7 +57,7 @@ class IsSurvive(Service): else: log.info("资源占用正常") is_ok = True - + msg0 = ( "Self status:\n" f"* CPU: {cpu}%\n" @@ -66,5 +67,5 @@ class IsSurvive(Service): f"* netRECV: {inteRECV}MB\n" f"* Runtime: {up_time}\n" ) + msg - + return msg0, is_ok |