From c6480bd1445547b6ef0703701e5a27ea9d69a4af Mon Sep 17 00:00:00 2001
From: ccc_dw <2931589710@qq.com>
Date: Thu, 25 Dec 2025 17:44:33 +0800
Subject: [PATCH] =?UTF-8?q?=E9=92=88=E5=AF=B9apscheduler=E7=9A=84=E7=89=88?=
=?UTF-8?q?=E6=9C=AC=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../nonebot_plugin_apscheduler/__init__.py | 52 +++++++++++++++++++
.../nonebot_plugin_apscheduler/config.py | 13 +++++
2 files changed, 65 insertions(+)
create mode 100644 .venv/Lib/site-packages/nonebot_plugin_apscheduler/__init__.py
create mode 100644 .venv/Lib/site-packages/nonebot_plugin_apscheduler/config.py
diff --git a/.venv/Lib/site-packages/nonebot_plugin_apscheduler/__init__.py b/.venv/Lib/site-packages/nonebot_plugin_apscheduler/__init__.py
new file mode 100644
index 0000000..27b1153
--- /dev/null
+++ b/.venv/Lib/site-packages/nonebot_plugin_apscheduler/__init__.py
@@ -0,0 +1,52 @@
+import logging
+
+from nonebot import get_driver
+from nonebot.plugin import PluginMetadata
+from nonebot.log import LoguruHandler, logger
+from apscheduler.schedulers.asyncio import AsyncIOScheduler
+
+from .config import Config
+
+__plugin_meta__ = PluginMetadata(
+ name="定时任务",
+ description="APScheduler 定时任务插件",
+ usage=(
+ '声明依赖: `require("nonebot_plugin_apscheduler")\n'
+ "导入调度器: `from nonebot_plugin_apscheduler import scheduler`\n"
+ "添加任务: `scheduler.add_job(...)`\n"
+ ),
+ type="library",
+ homepage="https://github.com/nonebot/plugin-apscheduler",
+ config=Config,
+ supported_adapters=None,
+)
+
+
+driver = get_driver()
+global_config = driver.config
+plugin_config = Config(**global_config.dict())
+
+scheduler = AsyncIOScheduler()
+scheduler.configure(plugin_config.apscheduler_config)
+
+
+async def _start_scheduler():
+ if not scheduler.running:
+ scheduler.start()
+ logger.opt(colors=True).info("Scheduler Started")
+
+
+async def _shutdown_scheduler():
+ if scheduler.running:
+ scheduler.shutdown()
+ logger.opt(colors=True).info("Scheduler Shutdown")
+
+
+if plugin_config.apscheduler_autostart:
+ driver.on_startup(_start_scheduler)
+ driver.on_shutdown(_shutdown_scheduler)
+
+aps_logger = logging.getLogger("apscheduler")
+aps_logger.setLevel(plugin_config.apscheduler_log_level)
+aps_logger.handlers.clear()
+aps_logger.addHandler(LoguruHandler())
diff --git a/.venv/Lib/site-packages/nonebot_plugin_apscheduler/config.py b/.venv/Lib/site-packages/nonebot_plugin_apscheduler/config.py
new file mode 100644
index 0000000..b399056
--- /dev/null
+++ b/.venv/Lib/site-packages/nonebot_plugin_apscheduler/config.py
@@ -0,0 +1,13 @@
+from pydantic import Field
+from pydantic_settings import BaseSettings
+
+
+class Config(BaseSettings):
+ apscheduler_autostart: bool = True
+ apscheduler_log_level: int = 30
+ apscheduler_config: dict = Field(
+ default_factory=lambda: {"apscheduler.timezone": "Asia/Shanghai"}
+ )
+
+ class Config:
+ extra = "ignore"