zhenxun_bot/plugins/web_ui/__init__.py

75 lines
2.4 KiB
Python
Raw Normal View History

2023-12-30 05:27:45 +08:00
import asyncio
2023-12-30 05:27:45 +08:00
import nonebot
from fastapi import APIRouter, FastAPI
from nonebot.adapters.onebot.v11 import Bot, MessageEvent
from nonebot.log import default_filter, default_format
from nonebot.matcher import Matcher
from nonebot.message import run_preprocessor
from nonebot.typing import T_State
2022-04-04 20:33:37 +08:00
2023-12-30 05:27:45 +08:00
from configs.config import Config as gConfig
from services.log import logger, logger_
from utils.manager import plugins2settings_manager
2023-12-30 05:27:45 +08:00
from .api.logs import router as ws_log_routes
from .api.logs.log_manager import LOG_STORAGE
2023-12-31 01:58:26 +08:00
from .api.tabs.database import router as database_router
2023-12-30 05:27:45 +08:00
from .api.tabs.main import router as main_router
from .api.tabs.main import ws_router as status_routes
from .api.tabs.manage import router as manage_router
from .api.tabs.manage import ws_router as chat_routes
2024-01-06 17:36:22 +08:00
from .api.tabs.plugin_manage import router as plugin_router
2024-01-15 01:19:37 +08:00
from .api.tabs.system import router as system_router
2023-12-30 05:27:45 +08:00
from .auth import router as auth_router
2023-04-02 22:57:36 +08:00
2023-12-30 05:27:45 +08:00
driver = nonebot.get_driver()
2022-04-04 20:33:37 +08:00
2023-12-30 05:27:45 +08:00
gConfig.add_plugin_config("web-ui", "username", "admin", name="web-ui", help_="前端管理用户名")
2022-04-04 20:33:37 +08:00
2023-12-30 05:27:45 +08:00
gConfig.add_plugin_config("web-ui", "password", None, name="web-ui", help_="前端管理密码")
2022-06-19 16:44:37 +08:00
2023-12-30 05:27:45 +08:00
BaseApiRouter = APIRouter(prefix="/zhenxun/api")
2023-04-02 22:57:36 +08:00
2024-01-08 05:39:44 +08:00
2023-12-30 05:27:45 +08:00
BaseApiRouter.include_router(auth_router)
BaseApiRouter.include_router(main_router)
BaseApiRouter.include_router(manage_router)
2023-12-31 01:58:26 +08:00
BaseApiRouter.include_router(database_router)
2024-01-06 17:36:22 +08:00
BaseApiRouter.include_router(plugin_router)
2024-01-15 01:19:37 +08:00
BaseApiRouter.include_router(system_router)
2023-04-02 22:57:36 +08:00
2024-01-08 05:39:44 +08:00
WsApiRouter = APIRouter(prefix="/zhenxun/socket")
WsApiRouter.include_router(ws_log_routes)
WsApiRouter.include_router(status_routes)
WsApiRouter.include_router(chat_routes)
2024-01-08 05:39:44 +08:00
2023-12-30 05:27:45 +08:00
@driver.on_startup
def _():
try:
2024-01-08 05:39:44 +08:00
async def log_sink(message: str):
loop = None
if not loop:
try:
loop = asyncio.get_running_loop()
except Exception as e:
logger.warning('Web Ui log_sink', e=e)
if not loop:
loop = asyncio.new_event_loop()
2023-12-30 05:27:45 +08:00
loop.create_task(LOG_STORAGE.add(message.rstrip("\n")))
2023-12-30 05:27:45 +08:00
logger_.add(
log_sink, colorize=True, filter=default_filter, format=default_format
)
2023-12-30 05:27:45 +08:00
app: FastAPI = nonebot.get_app()
app.include_router(BaseApiRouter)
2024-01-08 05:39:44 +08:00
app.include_router(WsApiRouter)
2023-12-30 05:27:45 +08:00
logger.info("<g>API启动成功</g>", "Web UI")
except Exception as e:
logger.error("<g>API启动失败</g>", "Web UI", e=e)