🎨 工具代码优化

This commit is contained in:
HibiKier 2024-10-29 08:26:41 +08:00
parent 6359ba63f9
commit 93316be5fe
3 changed files with 51 additions and 20 deletions

View File

@ -288,13 +288,6 @@ class ConfigsManager:
config.value = value
config.default_value = default_value
else:
_module = None
if ":" in module:
module_split = module.split(":")
if len(module_split) < 2:
raise ValueError(f"module: {module} 填写错误")
_module = module_split[-1]
module = module_split[0]
key = key.upper()
if not self._data.get(module):
self._data[module] = ConfigGroup(module=module)
@ -311,7 +304,6 @@ class ConfigsManager:
key: str,
value: Any,
auto_save: bool = False,
save_simple_data: bool = True,
):
"""设置配置值
@ -320,15 +312,16 @@ class ConfigsManager:
key: 配置名称
value:
auto_save: 自动保存.
save_simple_data: 保存至config.yaml.
"""
key = key.upper()
if module in self._data:
data = self._data[module].configs.get(key)
if data and data != value:
if self._data[module].configs.get(key):
self._data[module].configs[key].value = value
self._simple_data[module][key] = value
else:
self.add_plugin_config(module, key, value)
self._simple_data[module][key] = value
if auto_save:
self.save(save_simple_data=save_simple_data)
self.save(save_simple_data=True)
def get_config(self, module: str, key: str, default: Any = None) -> Any:
"""获取指定配置值

View File

@ -10,7 +10,6 @@ from ._build_image import BuildImage
class RowStyle(BaseModel):
font: FreeTypeFont | str | Path | None = "HYWenHei-85W.ttf"
"""字体"""
font_size: int = 20
@ -23,7 +22,6 @@ class RowStyle(BaseModel):
class ImageTemplate:
color_list = ["#C2CEFE", "#FFA94C", "#3FE6A0", "#D1D4F5"] # noqa: RUF012
@classmethod
@ -88,7 +86,7 @@ class ImageTemplate:
head_text: str,
tip_text: str | None,
column_name: list[str],
data_list: list[list[str | tuple[Path | BuildImage, int, int]]],
data_list: list[list[str | int | tuple[Path | BuildImage, int, int]]],
row_space: int = 35,
column_space: int = 30,
padding: int = 5,
@ -137,7 +135,7 @@ class ImageTemplate:
async def table(
cls,
column_name: list[str],
data_list: list[list[str | tuple[Path | BuildImage, int, int]]],
data_list: list[list[str | int | tuple[Path | BuildImage, int, int]]],
row_space: int = 25,
column_space: int = 10,
padding: int = 5,
@ -163,7 +161,7 @@ class ImageTemplate:
c = []
for lst in data_list:
if len(lst) > i:
c.append(lst[i])
c.append(str(lst[i]))
else:
c.append("")
column_data.append(c)
@ -176,7 +174,7 @@ class ImageTemplate:
if isinstance(s, tuple):
w = s[1]
else:
w, _ = BuildImage.get_text_size(s, font)
w, _ = BuildImage.get_text_size(str(s), font)
if w > _temp["width"]:
_temp["width"] = w
build_data_list.append(_temp)

View File

@ -4,7 +4,17 @@ from pathlib import Path
import nonebot
from pydantic import BaseModel
from nonebot.adapters.onebot.v11 import Message, MessageSegment
from nonebot_plugin_alconna import At, Text, AtAll, Image, Video, Voice, UniMessage
from nonebot_plugin_alconna import (
At,
Text,
AtAll,
Image,
Video,
Voice,
Reference,
CustomNode,
UniMessage,
)
from zhenxun.services.log import logger
from zhenxun.configs.config import BotConfig
@ -89,6 +99,36 @@ class MessageUtils:
message_list += cls.__build_message(_data) # type: ignore
return UniMessage(message_list)
@classmethod
def alc_forward_msg(
cls,
msg_list: list,
uin: str,
name: str,
) -> UniMessage:
"""生成自定义合并消息
参数:
msg_list: 消息列表
uin: 发送者 QQ
name: 自定义名称
返回:
list[dict]: 转发消息
"""
node_list = []
for _message in msg_list:
if isinstance(_message, list):
for i in range(len(_message.copy())):
if isinstance(_message[i], Path):
_message[i] = Image(
raw=BuildImage.open(_message[i]).pic2bytes()
)
node_list.append(
CustomNode(uid=uin, name=name, content=UniMessage(_message))
)
return UniMessage(Reference(nodes=node_list))
@classmethod
def custom_forward_msg(
cls,