feat: add async plugin data interfaces (#6188)

This commit is contained in:
yubanmeiqin9048
2026-07-25 14:24:47 +08:00
committed by GitHub
parent 197a09b2a4
commit a1a6376adc
2 changed files with 46 additions and 0 deletions

View File

@@ -24,6 +24,24 @@ class PluginDataOper(DbOper):
else:
PluginData(plugin_id=plugin_id, key=key, value=value).create(self._db)
async def async_save(self, plugin_id: str, key: str, value: Any) -> None:
"""
异步保存插件数据
:param plugin_id: 插件ID
:param key: 数据键
:param value: 数据值
"""
plugin = await PluginData.async_get_plugin_data_by_key(
self._db, plugin_id, key
)
if plugin:
await plugin.async_update(self._db, {"value": value})
else:
await PluginData(
plugin_id=plugin_id, key=key, value=value
).async_create(self._db)
def get_data(self, plugin_id: str, key: Optional[str] = None) -> Any:
"""
获取插件数据

View File

@@ -277,6 +277,20 @@ class _PluginBase(metaclass=ABCMeta):
plugin_id = self.__class__.__name__
self.plugindata.save(plugin_id, key, value)
async def async_save_data(
self, key: str, value: Any, plugin_id: Optional[str] = None
) -> None:
"""
异步保存插件数据
:param key: 数据键
:param value: 数据值
:param plugin_id: 插件ID
"""
if not plugin_id:
plugin_id = self.__class__.__name__
await self.plugindata.async_save(plugin_id, key, value)
def get_data(self, key: Optional[str] = None, plugin_id: Optional[str] = None) -> Any:
"""
获取插件数据
@@ -287,6 +301,20 @@ class _PluginBase(metaclass=ABCMeta):
plugin_id = self.__class__.__name__
return self.plugindata.get_data(plugin_id, key)
async def async_get_data(
self, key: Optional[str] = None, plugin_id: Optional[str] = None
) -> Any:
"""
异步获取插件数据
:param key: 数据键
:param plugin_id: 插件ID
:return: 指定键的数据值或插件的全部数据
"""
if not plugin_id:
plugin_id = self.__class__.__name__
return await self.plugindata.async_get_data(plugin_id, key)
def del_data(self, key: str, plugin_id: Optional[str] = None) -> Any:
"""
删除插件数据