mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
🎨 工具代码优化
This commit is contained in:
parent
44cb3d7222
commit
7d05e3047c
@ -288,13 +288,6 @@ class ConfigsManager:
|
|||||||
config.value = value
|
config.value = value
|
||||||
config.default_value = default_value
|
config.default_value = default_value
|
||||||
else:
|
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()
|
key = key.upper()
|
||||||
if not self._data.get(module):
|
if not self._data.get(module):
|
||||||
self._data[module] = ConfigGroup(module=module)
|
self._data[module] = ConfigGroup(module=module)
|
||||||
@ -311,7 +304,6 @@ class ConfigsManager:
|
|||||||
key: str,
|
key: str,
|
||||||
value: Any,
|
value: Any,
|
||||||
auto_save: bool = False,
|
auto_save: bool = False,
|
||||||
save_simple_data: bool = True,
|
|
||||||
):
|
):
|
||||||
"""设置配置值
|
"""设置配置值
|
||||||
|
|
||||||
@ -320,15 +312,16 @@ class ConfigsManager:
|
|||||||
key: 配置名称
|
key: 配置名称
|
||||||
value: 值
|
value: 值
|
||||||
auto_save: 自动保存.
|
auto_save: 自动保存.
|
||||||
save_simple_data: 保存至config.yaml.
|
|
||||||
"""
|
"""
|
||||||
|
key = key.upper()
|
||||||
if module in self._data:
|
if module in self._data:
|
||||||
data = self._data[module].configs.get(key)
|
if self._data[module].configs.get(key):
|
||||||
if data and data != value:
|
|
||||||
self._data[module].configs[key].value = value
|
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:
|
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:
|
def get_config(self, module: str, key: str, default: Any = None) -> Any:
|
||||||
"""获取指定配置值
|
"""获取指定配置值
|
||||||
|
|||||||
@ -10,7 +10,6 @@ from ._build_image import BuildImage
|
|||||||
|
|
||||||
|
|
||||||
class RowStyle(BaseModel):
|
class RowStyle(BaseModel):
|
||||||
|
|
||||||
font: FreeTypeFont | str | Path | None = "HYWenHei-85W.ttf"
|
font: FreeTypeFont | str | Path | None = "HYWenHei-85W.ttf"
|
||||||
"""字体"""
|
"""字体"""
|
||||||
font_size: int = 20
|
font_size: int = 20
|
||||||
@ -23,7 +22,6 @@ class RowStyle(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class ImageTemplate:
|
class ImageTemplate:
|
||||||
|
|
||||||
color_list = ["#C2CEFE", "#FFA94C", "#3FE6A0", "#D1D4F5"] # noqa: RUF012
|
color_list = ["#C2CEFE", "#FFA94C", "#3FE6A0", "#D1D4F5"] # noqa: RUF012
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -88,7 +86,7 @@ class ImageTemplate:
|
|||||||
head_text: str,
|
head_text: str,
|
||||||
tip_text: str | None,
|
tip_text: str | None,
|
||||||
column_name: list[str],
|
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,
|
row_space: int = 35,
|
||||||
column_space: int = 30,
|
column_space: int = 30,
|
||||||
padding: int = 5,
|
padding: int = 5,
|
||||||
@ -137,7 +135,7 @@ class ImageTemplate:
|
|||||||
async def table(
|
async def table(
|
||||||
cls,
|
cls,
|
||||||
column_name: list[str],
|
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,
|
row_space: int = 25,
|
||||||
column_space: int = 10,
|
column_space: int = 10,
|
||||||
padding: int = 5,
|
padding: int = 5,
|
||||||
@ -163,7 +161,7 @@ class ImageTemplate:
|
|||||||
c = []
|
c = []
|
||||||
for lst in data_list:
|
for lst in data_list:
|
||||||
if len(lst) > i:
|
if len(lst) > i:
|
||||||
c.append(lst[i])
|
c.append(str(lst[i]))
|
||||||
else:
|
else:
|
||||||
c.append("")
|
c.append("")
|
||||||
column_data.append(c)
|
column_data.append(c)
|
||||||
@ -176,7 +174,7 @@ class ImageTemplate:
|
|||||||
if isinstance(s, tuple):
|
if isinstance(s, tuple):
|
||||||
w = s[1]
|
w = s[1]
|
||||||
else:
|
else:
|
||||||
w, _ = BuildImage.get_text_size(s, font)
|
w, _ = BuildImage.get_text_size(str(s), font)
|
||||||
if w > _temp["width"]:
|
if w > _temp["width"]:
|
||||||
_temp["width"] = w
|
_temp["width"] = w
|
||||||
build_data_list.append(_temp)
|
build_data_list.append(_temp)
|
||||||
|
|||||||
@ -4,7 +4,17 @@ from pathlib import Path
|
|||||||
import nonebot
|
import nonebot
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from nonebot.adapters.onebot.v11 import Message, MessageSegment
|
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.services.log import logger
|
||||||
from zhenxun.configs.config import BotConfig
|
from zhenxun.configs.config import BotConfig
|
||||||
@ -89,6 +99,36 @@ class MessageUtils:
|
|||||||
message_list += cls.__build_message(_data) # type: ignore
|
message_list += cls.__build_message(_data) # type: ignore
|
||||||
return UniMessage(message_list)
|
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
|
@classmethod
|
||||||
def custom_forward_msg(
|
def custom_forward_msg(
|
||||||
cls,
|
cls,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user