diff --git a/poetry.lock b/poetry.lock index 853649d..3ae0553 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. [[package]] name = "aiofiles" @@ -1363,6 +1363,22 @@ files = [ msgpack = ">=1.0.3,<2.0.0" nonebot2 = ">=2.0.0-beta.3,<3.0.0" +[[package]] +name = "nonebot-plugin-apscheduler" +version = "0.2.0" +description = "APScheduler Support for NoneBot2" +category = "main" +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "nonebot-plugin-apscheduler-0.2.0.tar.gz", hash = "sha256:7b63e99a611b657533b48fcf1f8c6627c18c2eb3fa820a906cd4ec4666c0ceb0"}, + {file = "nonebot_plugin_apscheduler-0.2.0-py3-none-any.whl", hash = "sha256:9285ee84ca1cfa4db73c86cedb5911bbbd25a21ec0cd5f22447cd12f89e48fb4"}, +] + +[package.dependencies] +apscheduler = ">=3.7.0,<4.0.0" +nonebot2 = ">=2.0.0-rc.1,<3.0.0" + [[package]] name = "nonebot-plugin-datastore" version = "0.5.8" @@ -2253,7 +2269,7 @@ greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and platfor [package.extras] aiomysql = ["aiomysql", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] @@ -2263,14 +2279,14 @@ mssql-pyodbc = ["pyodbc"] mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] mysql-connector = ["mysql-connector-python"] -oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] +oracle = ["cx-oracle (>=7)", "cx-oracle (>=7,<8)"] postgresql = ["psycopg2 (>=2.7)"] postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql", "pymysql (<1)"] -sqlcipher = ["sqlcipher3_binary"] +sqlcipher = ["sqlcipher3-binary"] [[package]] name = "sqlalchemy-stubs" @@ -2791,4 +2807,4 @@ multidict = ">=4.0" [metadata] lock-version = "2.0" python-versions = ">=3.10,<4.0.0" -content-hash = "e96935d803ebcbb4251968c10f67f6e8807b7d046c6175fc75f1f672ec5e800c" +content-hash = "15a585b44a2065b8e7faaa7215d525d839d67b3d349da69eaf84dec6c0ba68e3" diff --git a/pyproject.toml b/pyproject.toml index b9099f9..787fb43 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,12 +7,8 @@ license = "MIT" homepage = "https://github.com/felinae98/nonebot-bison" keywords = ["nonebot", "nonebot2", "qqbot"] readme = "README.md" -packages = [ - { include = "nonebot_bison", from = "./src/plugins/" } -] -include = [ - "src/plugins/nonebot_bison/admin_page/dist/**/*" -] +packages = [{ include = "nonebot_bison", from = "./src/plugins/" }] +include = ["src/plugins/nonebot_bison/admin_page/dist/**/*"] classifiers = [ "Development Status :: 4 - Beta", "Operating System :: POSIX :: Linux", @@ -21,7 +17,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: Implementation :: CPython", - "License :: OSI Approved :: MIT License" + "License :: OSI Approved :: MIT License", ] [tool.poetry.dependencies] @@ -32,13 +28,13 @@ bs4 = "^0.0.1" tinydb = "^4.3.0" feedparser = "^6.0.2" pillow = ">=8.1,<10.0" -apscheduler = "^3.7.0" expiringdict = "^1.2.1" pyjwt = "^2.1.0" python-socketio = "^5.4.0" nonebot-adapter-onebot = "^2.0.0-beta.1" nonebot-plugin-htmlrender = ">=0.2.0" nonebot-plugin-datastore = ">=0.5.8" +nonebot-plugin-apscheduler = "^0.2.0" [tool.poetry.dev-dependencies] ipdb = "^0.13.4" @@ -52,7 +48,7 @@ isort = "^5.10.1" pre-commit = "^2.17.0" flaky = "^3.7.0" sqlalchemy-stubs = "^0.4" -nonebot2 = {extras = ["fastapi"], version = ">=2.0.0-rc.2"} +nonebot2 = { extras = ["fastapi"], version = ">=2.0.0-rc.2" } [build-system] requires = ["poetry>=0.12"] @@ -62,7 +58,7 @@ build-backend = "poetry.masonry.api" markers = [ "compare: compare fetching result with rsshub", "render: render img by chrome", - "external: use external resources" + "external: use external resources", ] asyncio_mode = "auto" diff --git a/src/plugins/nonebot_bison/__init__.py b/src/plugins/nonebot_bison/__init__.py index d4f13e9..391d9e1 100644 --- a/src/plugins/nonebot_bison/__init__.py +++ b/src/plugins/nonebot_bison/__init__.py @@ -1,5 +1,6 @@ from nonebot.plugin import PluginMetadata, require +require("nonebot_plugin_apscheduler") require("nonebot_plugin_datastore") from . import ( diff --git a/src/plugins/nonebot_bison/bootstrap.py b/src/plugins/nonebot_bison/bootstrap.py index b3e05a0..d8f9e63 100644 --- a/src/plugins/nonebot_bison/bootstrap.py +++ b/src/plugins/nonebot_bison/bootstrap.py @@ -4,7 +4,6 @@ from sqlalchemy import inspect, text from .config.config_legacy import start_up as legacy_db_startup from .config.db import data_migrate -from .scheduler.aps import start_scheduler from .scheduler.manager import init_scheduler @@ -49,6 +48,4 @@ async def post(): await data_migrate() # init scheduler await init_scheduler() - # start scheduler - start_scheduler() logger.info("nonebot-bison bootstrap done") diff --git a/src/plugins/nonebot_bison/scheduler/aps.py b/src/plugins/nonebot_bison/scheduler/aps.py deleted file mode 100644 index cc0fd18..0000000 --- a/src/plugins/nonebot_bison/scheduler/aps.py +++ /dev/null @@ -1,8 +0,0 @@ -from apscheduler.schedulers.asyncio import AsyncIOScheduler - -aps = AsyncIOScheduler(timezone="Asia/Shanghai") - - -def start_scheduler(): - aps.configure({"apscheduler.timezone": "Asia/Shanghai"}) - aps.start() diff --git a/src/plugins/nonebot_bison/scheduler/scheduler.py b/src/plugins/nonebot_bison/scheduler/scheduler.py index 003e1ee..d2cde1f 100644 --- a/src/plugins/nonebot_bison/scheduler/scheduler.py +++ b/src/plugins/nonebot_bison/scheduler/scheduler.py @@ -3,6 +3,7 @@ from typing import Optional, Type from nonebot.adapters.onebot.v11.bot import Bot from nonebot.log import logger +from nonebot_plugin_apscheduler import scheduler from ..config import config from ..platform import platform_manager @@ -10,7 +11,6 @@ from ..send import send_msgs from ..types import Target from ..utils import ProcessContext, SchedulerConfig from ..utils.get_bot import get_bot -from .aps import aps @dataclass @@ -48,7 +48,7 @@ class Scheduler: logger.info( f"register scheduler for {self.name} with {self.scheduler_config.schedule_type} {self.scheduler_config.schedule_setting}" ) - aps.add_job( + scheduler.add_job( self.exec_fetch, self.scheduler_config.schedule_type, **self.scheduler_config.schedule_setting,