♻️ 直接使用官方定时任务插件 (#209)

This commit is contained in:
uy/sun 2023-03-02 22:45:19 +08:00 committed by GitHub
parent 1898607a82
commit bc521cd38a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 30 additions and 28 deletions

26
poetry.lock generated
View File

@ -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"

View File

@ -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"

View File

@ -1,5 +1,6 @@
from nonebot.plugin import PluginMetadata, require
require("nonebot_plugin_apscheduler")
require("nonebot_plugin_datastore")
from . import (

View File

@ -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")

View File

@ -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()

View File

@ -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,