From 3a7151bb6d30585e88858d04669d29fb8367906f Mon Sep 17 00:00:00 2001 From: SlyAimer <2289782085@qq.com> Date: Mon, 3 Mar 2025 14:00:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(bot):=20=E9=87=8D=E6=9E=84=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E9=80=BB=E8=BE=91=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=97=A5=E5=BF=97=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 `BlockingScheduler` 替换为 `BackgroundScheduler` - 将 `clean_temp_cache` 函数移至 `bot.py` 并优化文件清理逻辑 - 调整日志文件路径为 `log_path + "error.log"` - 移除 `platform.py` 中冗余的缓存清理函数 --- bot.py | 30 +++++++++++++++++++++++------- src/plugins/platform.py | 16 +--------------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/bot.py b/bot.py index 59c8056..2cd7717 100644 --- a/bot.py +++ b/bot.py @@ -1,23 +1,39 @@ +import os +import glob +import logging import nonebot -from nonebot.adapters.qq import Adapter as QQAdapter +from pathlib import Path from nonebot import logger from nonebot.log import default_format -from apscheduler.schedulers.blocking import BlockingScheduler -from src.configs.path_config import log_path -from src.plugins.platform import clean_temp_cache +from nonebot.adapters.qq import Adapter as QQAdapter +from apscheduler.schedulers.background import BackgroundScheduler +from src.configs.path_config import log_path,temp_path,video_path nonebot.init() driver = nonebot.get_driver() driver.register_adapter(QQAdapter) # 注册QQ适配器 nonebot.load_from_toml("pyproject.toml") -logger.add(log_path, level="ERROR", format=default_format, rotation="1 week") +logger.add(log_path+"error.log", level="ERROR", format=default_format, rotation="1 week") from src.clover_sqlite.data_init.db_connect import disconnect, init driver.on_startup(init) driver.on_shutdown(disconnect) -scheduler = BlockingScheduler() + +def clean_temp_cache(): + """定时清理缓存文件""" + path_list = [Path(temp_path), Path(video_path)] + print("开始清理文件") + for folder_path in path_list: + files = get_files_in_folder(folder_path) + for file in files: + os.remove(file) + +def get_files_in_folder(folder_path: Path): + return [Path(f) for f in glob.glob(str(folder_path / "*")) if Path(f).is_file()] + +scheduler = BackgroundScheduler() scheduler.add_job(clean_temp_cache, 'cron', hour=0, minute=0) -scheduler.start() if __name__ == "__main__": + scheduler.start() nonebot.run() diff --git a/src/plugins/platform.py b/src/plugins/platform.py index 7c11c8e..60eba3f 100644 --- a/src/plugins/platform.py +++ b/src/plugins/platform.py @@ -1,14 +1,11 @@ -import os -import glob + import time import psutil import platform -import logging from pathlib import Path from nonebot.rule import to_me from nonebot.plugin import on_command from nonebot.adapters.qq import Message, MessageSegment -from src.configs.path_config import temp_path,video_path repository = on_command("repo", rule=to_me(), priority=10, block=True) @@ -46,15 +43,4 @@ async def get_platform_info(): await platform_info.finish(content) -def clean_temp_cache(): - """定时清理缓存文件""" - path_list = [temp_path, video_path] - for folder_path in path_list: - files = get_files_in_folder(folder_path) - for file in files: - os.remove(file) - - -def get_files_in_folder(folder_path: Path): - return [Path(f) for f in glob.glob(str(folder_path / "*")) if Path(f).is_file()]