diff options
Diffstat (limited to 'ATRI/plugins/Scheduler.py')
-rw-r--r-- | ATRI/plugins/Scheduler.py | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/ATRI/plugins/Scheduler.py b/ATRI/plugins/Scheduler.py new file mode 100644 index 0000000..100ee3b --- /dev/null +++ b/ATRI/plugins/Scheduler.py @@ -0,0 +1,155 @@ +import os +import time +import nonebot +import psutil +from datetime import datetime +from random import randint, choice +from pathlib import Path + +import config # type: ignore + + +bot = nonebot.get_bot() +master = config.MASTER() + + +@nonebot.scheduler.scheduled_job( + 'cron', + hour = 7, + misfire_grace_time= 600 +) +async def _(): + """早安""" + try: + await bot.send_private_msg(user_id = master, message = f'ATRI将在三秒后开始执行定时任务:早安') # type: ignore + time.sleep(3) + start = time.perf_counter() + group_list = await bot.get_group_list() #type: ignore + groups = [group['group_id'] for group in group_list] + g_list = len(group_list) + msg = choice( + [ + '啊......早上好...(哈欠)', + '唔......吧唧...早上...哈啊啊~~~\n早上好......', + '早上好......', + '早上好呜......呼啊啊~~~~', + '啊......早上好。\n昨晚也很激情呢!', + '吧唧吧唧......怎么了...已经早上了么...', + '早上好!', + '......看起来像是傍晚,其实已经早上了吗?', + '早上好......欸~~~脸好近呢' + '......(打瞌睡)', + ] + ) + + try: + for group in groups: + time.sleep(randint(60,90)) + await bot.send_group_msg(group_id = group, message = msg) #type: ignore + except: + await bot.send_private_msg(user_id = master, message = f'在推送[早安]到某些群的时候貌似失败了呢') # type: ignore + + end = time.perf_counter() + await bot.send_private_msg(user_id = master, message = f'已推送到[{g_list}]个群\n耗时:{round(end - start, 3)}') # type: ignore + + except: + pass + +@nonebot.scheduler.scheduled_job( + 'cron', + hour = 22, + misfire_grace_time = 600 +) +async def _(): + """晚安""" + try: + await bot.send_private_msg(user_id = master, message = f'ATRI将在三秒后开始执行定时任务:晚安') # type: ignore + time.sleep(3) + start = time.perf_counter() + group_list = await bot.get_group_list() #type: ignore + groups = [group['group_id'] for group in group_list] + g_list = len(group_list) + msg = choice( + [ + '忙累了一天,快休息吧', + '辛苦了一天,准备睡觉吧', + '一起睡觉吧~~~~~', + '......该睡觉了', + '还不睡等着猝死?嗯!?' + + ] + ) + + try: + for group in groups: + time.sleep(randint(60,90)) + await bot.send_group_msg(group_id = group, message = msg) #type: ignore + except: + await bot.send_private_msg(user_id = master, message = f'在推送[晚安]到某些群的时候貌似失败了呢') # type: ignore + + end = time.perf_counter() + await bot.send_private_msg(user_id = master, message = f'已推送到[{g_list}]个群\n耗时:{round(end - start, 3)}') # type: ignore + + except: + pass + +@nonebot.scheduler.scheduled_job( + 'cron', + hour = 0, + misfire_grace_time = 600 +) +async def _(): + """到 点 了""" + try: + await bot.send_private_msg(user_id = master, message = f'ATRI将在三秒后开始执行定时任务:网抑云') # type: ignore + time.sleep(3) + start = time.perf_counter() + group_list = await bot.get_group_list() # type: ignore + groups = [group['group_id'] for group in group_list] + g_list = len(group_list) + msg = f'到点了叻~!' + + try: + for group in groups: + time.sleep(randint(60,90)) + await bot.send_group_msg(group_id = group, message = msg) #type: ignore + except: + await bot.send_private_msg(user_id = master, message = f'在推送[网抑云]到某些群的时候貌似失败了呢') # type: ignore + + end = time.perf_counter() + await bot.send_private_msg(user_id = master, message = f'已推送到[{g_list}]个群\n耗时:{round(end - start, 3)}') # type: ignore + + except: + pass + +@nonebot.scheduler.scheduled_job( + 'interval', + minutes = 5, + misfire_grace_time= 10 +) +async def _(): + cpu = psutil.cpu_percent(interval=1) + memory = psutil.virtual_memory().percent + disk = psutil.disk_usage('/').percent + today = datetime.now() + + if cpu > 80: + await bot.send_private_msg( + user_id = master, + message = f'ATRI感觉头有点晕...\n(cpu:{cpu}% mem:{memory}% disk:{disk}%)\n{today}' + ) # type: ignore + + elif memory > 80: + await bot.send_private_msg( + user_id = master, + message = f'ATRI感觉身体有点累...\n(cpu:{cpu}% mem:{memory}% disk:{disk}%)\n{today}' + ) # type: ignore + + elif disk > 80: + await bot.send_private_msg( + user_id = master, + message = f'ATRI感觉身体要被塞满了...\n(cpu:{cpu}% mem:{memory}% disk:{disk}%)\n{today}' + ) # type: ignore + + else: + pass
\ No newline at end of file |