zhenxun_bot/zhenxun/builtin_plugins/superuser/ui_manager.py

63 lines
1.8 KiB
Python
Raw Normal View History

from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
from nonebot.rule import to_me
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
from zhenxun.configs.utils import PluginExtraData, RegisterConfig
from zhenxun.services import renderer_service
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
__plugin_meta__ = PluginMetadata(
name="UI管理",
description="管理UI、主题和渲染服务的相关配置",
usage="""
指令
重载UI主题
""".strip(),
extra=PluginExtraData(
author="HibiKier",
version="0.1",
plugin_type=PluginType.SUPERUSER,
configs=[
RegisterConfig(
module="UI",
key="THEME",
value="default",
help="设置渲染服务使用的全局主题名称(对应 resources/themes/下的目录名)",
default_value="default",
type=str,
),
RegisterConfig(
module="UI",
key="CACHE",
value=True,
help="是否为渲染服务生成的图片启用文件缓存",
default_value=True,
type=bool,
),
],
).to_dict(),
)
_matcher = on_alconna(
Alconna("重载主题"),
rule=to_me(),
permission=SUPERUSER,
priority=1,
block=True,
)
@_matcher.handle()
async def _(arparma: Arparma):
theme_name = await renderer_service.reload_theme()
logger.info(
f"UI主题已重载为: {theme_name}", "UI管理器", session=arparma.header_result
)
await MessageUtils.build_message(f"UI主题已成功重载为 '{theme_name}'").send(
reply_to=True
)