Initial commit
This commit is contained in:
34
plugin/base.py
Normal file
34
plugin/base.py
Normal file
@@ -0,0 +1,34 @@
|
||||
from fastapi import FastAPI
|
||||
|
||||
from uvicorn.server import logger
|
||||
|
||||
|
||||
class Plugin:
|
||||
def __init__(
|
||||
self, app: FastAPI, name="Unnamed Plugin", version="1.0.0", *args, **kwargs
|
||||
):
|
||||
self.app = app
|
||||
self.name = name
|
||||
self.version = version
|
||||
|
||||
def install(self):
|
||||
pass
|
||||
|
||||
|
||||
class PluginManager:
|
||||
def __init__(self, app: FastAPI):
|
||||
self.app = app
|
||||
|
||||
def register_plugin(self, plugin: Plugin):
|
||||
plugin_name = getattr(plugin, "name", "Unnamed Plugin")
|
||||
plugin_version = getattr(plugin, "version", "Unknown Version")
|
||||
logger.info(f"[插件] Registering plugin: [{plugin_name} {plugin_version}] ")
|
||||
try:
|
||||
plugin.install()
|
||||
logger.info(
|
||||
f"[插件] Plugin [{plugin_name} {plugin_version}] installed successfully ✅"
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(
|
||||
f"[插件] Failed to install plugin [{plugin_name} {plugin_version}]: {e} ❌"
|
||||
)
|
||||
Reference in New Issue
Block a user