Merge pull request #2286 from honue/main
This commit is contained in:
commit
ea1e600474
@ -176,13 +176,15 @@ def plugin_dashboard(plugin_id: str, key: str, user_agent: Annotated[str | None,
|
|||||||
return PluginManager().get_plugin_dashboard(plugin_id, key=key, user_agent=user_agent)
|
return PluginManager().get_plugin_dashboard(plugin_id, key=key, user_agent=user_agent)
|
||||||
|
|
||||||
|
|
||||||
@router.get("/reset/{plugin_id}", summary="重置插件配置", response_model=schemas.Response)
|
@router.get("/reset/{plugin_id}", summary="重置插件配置及数据", response_model=schemas.Response)
|
||||||
def reset_plugin(plugin_id: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
def reset_plugin(plugin_id: str, _: schemas.TokenPayload = Depends(verify_token)) -> Any:
|
||||||
"""
|
"""
|
||||||
根据插件ID重置插件配置
|
根据插件ID重置插件配置及数据
|
||||||
"""
|
"""
|
||||||
# 删除配置
|
# 删除配置
|
||||||
PluginManager().delete_plugin_config(plugin_id)
|
PluginManager().delete_plugin_config(plugin_id)
|
||||||
|
# 删除插件所有数据
|
||||||
|
PluginManager().delete_plugin_data(plugin_id)
|
||||||
# 重新生效插件
|
# 重新生效插件
|
||||||
PluginManager().init_plugin(plugin_id, {
|
PluginManager().init_plugin(plugin_id, {
|
||||||
"enabled": False,
|
"enabled": False,
|
||||||
|
@ -14,6 +14,7 @@ from app import schemas
|
|||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
from app.core.event import eventmanager
|
from app.core.event import eventmanager
|
||||||
from app.db.systemconfig_oper import SystemConfigOper
|
from app.db.systemconfig_oper import SystemConfigOper
|
||||||
|
from app.db.plugindata_oper import PluginDataOper
|
||||||
from app.helper.module import ModuleHelper
|
from app.helper.module import ModuleHelper
|
||||||
from app.helper.plugin import PluginHelper
|
from app.helper.plugin import PluginHelper
|
||||||
from app.helper.sites import SitesHelper
|
from app.helper.sites import SitesHelper
|
||||||
@ -96,6 +97,7 @@ class PluginManager(metaclass=Singleton):
|
|||||||
self.siteshelper = SitesHelper()
|
self.siteshelper = SitesHelper()
|
||||||
self.pluginhelper = PluginHelper()
|
self.pluginhelper = PluginHelper()
|
||||||
self.systemconfig = SystemConfigOper()
|
self.systemconfig = SystemConfigOper()
|
||||||
|
self.plugindata = PluginDataOper()
|
||||||
# 开发者模式监测插件修改
|
# 开发者模式监测插件修改
|
||||||
if settings.DEV or settings.PLUGIN_AUTO_RELOAD:
|
if settings.DEV or settings.PLUGIN_AUTO_RELOAD:
|
||||||
self.__start_monitor()
|
self.__start_monitor()
|
||||||
@ -319,6 +321,16 @@ class PluginManager(metaclass=Singleton):
|
|||||||
return False
|
return False
|
||||||
return self.systemconfig.delete(self._config_key % pid)
|
return self.systemconfig.delete(self._config_key % pid)
|
||||||
|
|
||||||
|
def delete_plugin_data(self, pid: str) -> bool:
|
||||||
|
"""
|
||||||
|
删除插件数据
|
||||||
|
:param pid: 插件ID
|
||||||
|
"""
|
||||||
|
if not self._plugins.get(pid):
|
||||||
|
return False
|
||||||
|
self.plugindata.del_data(pid)
|
||||||
|
return True
|
||||||
|
|
||||||
def get_plugin_form(self, pid: str) -> Tuple[List[dict], Dict[str, Any]]:
|
def get_plugin_form(self, pid: str) -> Tuple[List[dict], Dict[str, Any]]:
|
||||||
"""
|
"""
|
||||||
获取插件表单
|
获取插件表单
|
||||||
|
@ -29,6 +29,11 @@ class PluginData(Base):
|
|||||||
def del_plugin_data_by_key(db: Session, plugin_id: str, key: str):
|
def del_plugin_data_by_key(db: Session, plugin_id: str, key: str):
|
||||||
db.query(PluginData).filter(PluginData.plugin_id == plugin_id, PluginData.key == key).delete()
|
db.query(PluginData).filter(PluginData.plugin_id == plugin_id, PluginData.key == key).delete()
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
@db_update
|
||||||
|
def del_plugin_data(db: Session, plugin_id: str):
|
||||||
|
db.query(PluginData).filter(PluginData.plugin_id == plugin_id).delete()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@db_query
|
@db_query
|
||||||
def get_plugin_data_by_plugin_id(db: Session, plugin_id: str):
|
def get_plugin_data_by_plugin_id(db: Session, plugin_id: str):
|
||||||
|
@ -44,13 +44,16 @@ class PluginDataOper(DbOper):
|
|||||||
else:
|
else:
|
||||||
return PluginData.get_plugin_data(self._db, plugin_id)
|
return PluginData.get_plugin_data(self._db, plugin_id)
|
||||||
|
|
||||||
def del_data(self, plugin_id: str, key: str) -> Any:
|
def del_data(self, plugin_id: str, key: str = None) -> Any:
|
||||||
"""
|
"""
|
||||||
删除插件数据
|
删除插件数据
|
||||||
:param plugin_id: 插件id
|
:param plugin_id: 插件id
|
||||||
:param key: 数据key
|
:param key: 数据key
|
||||||
"""
|
"""
|
||||||
|
if key:
|
||||||
PluginData.del_plugin_data_by_key(self._db, plugin_id, key)
|
PluginData.del_plugin_data_by_key(self._db, plugin_id, key)
|
||||||
|
else:
|
||||||
|
PluginData.del_plugin_data(self._db, plugin_id)
|
||||||
|
|
||||||
def truncate(self):
|
def truncate(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user