mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-14 21:52:56 +08:00
🎨 工具代码优化
This commit is contained in:
parent
6359ba63f9
commit
93316be5fe
@ -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:
|
||||
"""获取指定配置值
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user