mirror of
https://github.com/xuthus83/LittlePaimon.git
synced 2025-04-12 23:29:37 +08:00
All checks were successful
littlePaimon / littlePaimon-Gitea-Actions (push) Successful in 2h52m18s
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
import logging
|
|
|
|
from apscheduler.schedulers.asyncio import AsyncIOScheduler
|
|
from nonebot import get_driver
|
|
from nonebot.log import LoguruHandler, logger
|
|
from pydantic import Field, BaseSettings
|
|
|
|
|
|
class Config(BaseSettings):
|
|
apscheduler_autostart: bool = True
|
|
apscheduler_log_level: int = 30
|
|
amis_cdn: str = "https://npm.onmicrosoft.cn"
|
|
amis_pkg: str = "amis@6.3.0"
|
|
apscheduler_config: dict = Field(
|
|
default_factory=lambda: {"apscheduler.timezone": "Asia/Shanghai"}
|
|
)
|
|
|
|
class Config:
|
|
extra = "ignore"
|
|
|
|
|
|
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("<y>Scheduler Started</y>")
|
|
|
|
|
|
async def _shutdown_scheduler():
|
|
if scheduler.running:
|
|
scheduler.shutdown()
|
|
logger.opt(colors=True).info("<y>Scheduler Shutdown</y>")
|
|
|
|
|
|
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())
|