Compare commits

..

2 Commits

Author SHA1 Message Date
AkashiCoin
26a7a91163
Merge 42c9758eb7 into 6940c2f37b 2025-09-08 08:44:06 +08:00
AkashiCoin
42c9758eb7 🎉 chore(version): Update version to v0.2.4-6940c2f
Some checks failed
Sequential Lint and Type Check / ruff-call (push) Has been cancelled
Sequential Lint and Type Check / pyright-call (push) Has been cancelled
2025-09-08 00:44:04 +00:00
4 changed files with 25 additions and 38 deletions

View File

@ -1 +1 @@
__version__: v0.2.4-fb0a981 __version__: v0.2.4-6940c2f

View File

@ -132,7 +132,7 @@ async def gold_rank(session: Uninfo, group_id: str | None, num: int) -> bytes |
else TextCell(content=""), else TextCell(content=""),
TextCell(content=uid2name.get(user[0]) or user[0]), TextCell(content=uid2name.get(user[0]) or user[0]),
TextCell(content=str(user[1]), bold=True), TextCell(content=str(user[1]), bold=True),
ImageCell(src=platform_path) ImageCell(src=platform_path.resolve().as_uri())
if (platform_path := PLATFORM_PATH.get(platform)) if (platform_path := PLATFORM_PATH.get(platform))
else TextCell(content=""), else TextCell(content=""),
] ]
@ -532,15 +532,15 @@ class ShopManage:
icon = "" icon = ""
if prop.icon: if prop.icon:
icon_path = ICON_PATH / prop.icon icon_path = ICON_PATH / prop.icon
icon = icon_path if icon_path.exists() else "" icon = (icon_path, 33, 33) if icon_path.exists() else ""
table_rows.append( table_rows.append(
[ [
ImageCell(src=icon, height=33, width=33), icon,
TextCell(content=i), i,
TextCell(content=prop.goods_name), prop.goods_name,
TextCell(content=user.props[prop_uuid]), user.props[prop_uuid],
TextCell(content=prop.goods_description), prop.goods_description,
] ]
) )

View File

@ -91,7 +91,7 @@ class SignManage:
TextCell(content=uid2name.get(user[0]) or user[0]), TextCell(content=uid2name.get(user[0]) or user[0]),
TextCell(content=str(user[1]), bold=True), TextCell(content=str(user[1]), bold=True),
TextCell(content=str(user[2])), TextCell(content=str(user[2])),
ImageCell(src=platform_path) ImageCell(src=platform_path.resolve().as_uri())
if (platform_path := PLATFORM_PATH.get(platform)) if (platform_path := PLATFORM_PATH.get(platform))
else TextCell(content=""), else TextCell(content=""),
] ]

View File

@ -1,8 +1,6 @@
from pathlib import Path
from typing import Literal from typing import Literal
from nonebot.compat import field_validator from pydantic import BaseModel, Field
from pydantic import BaseModel
from ...models.components.progress_bar import ProgressBar from ...models.components.progress_bar import ProgressBar
from .base import RenderableComponent from .base import RenderableComponent
@ -30,7 +28,7 @@ class TextCell(BaseCell):
"""文本单元格""" """文本单元格"""
type: Literal["text"] = "text" # type: ignore type: Literal["text"] = "text" # type: ignore
content: str | float content: str
bold: bool = False bold: bool = False
color: str | None = None color: str | None = None
@ -39,18 +37,12 @@ class ImageCell(BaseCell):
"""图片单元格""" """图片单元格"""
type: Literal["image"] = "image" # type: ignore type: Literal["image"] = "image" # type: ignore
src: str | Path src: str
width: int = 40 width: int = 40
height: int = 40 height: int = 40
shape: Literal["square", "circle"] = "square" shape: Literal["square", "circle"] = "square"
alt: str = "image" alt: str = "image"
@field_validator("src", mode="before")
def validate_src(cls, v: str) -> str:
if isinstance(v, Path):
v = v.resolve().as_uri()
return v
class StatusBadgeCell(BaseCell): class StatusBadgeCell(BaseCell):
"""状态徽章单元格""" """状态徽章单元格"""
@ -70,12 +62,9 @@ class RichTextCell(BaseCell):
"""富文本单元格,支持多个带样式的文本片段""" """富文本单元格,支持多个带样式的文本片段"""
type: Literal["rich_text"] = "rich_text" # type: ignore type: Literal["rich_text"] = "rich_text" # type: ignore
spans: list[TextSpan] = [] spans: list[TextSpan] = Field(default_factory=list, description="文本片段列表")
"""文本片段列表""" direction: Literal["column", "row"] = Field("column", description="片段排列方向")
direction: Literal["column", "row"] = "column" gap: str = Field("4px", description="片段之间的间距")
"""片段排列方向"""
gap: str = "4px"
"""片段之间的间距"""
TableCell = ( TableCell = (
@ -95,18 +84,16 @@ class TableData(RenderableComponent):
"""通用表格的数据模型""" """通用表格的数据模型"""
style_name: str | None = None style_name: str | None = None
title: str title: str = Field(..., description="表格主标题")
"""表格主标题""" tip: str | None = Field(None, description="表格下方的提示信息")
tip: str | None = None headers: list[str] = Field(default_factory=list, description="表头列表")
"""表格下方的提示信息""" rows: list[list[TableCell]] = Field(default_factory=list, description="数据行列表")
headers: list[str] = [] # noqa: RUF012 column_alignments: list[Literal["left", "center", "right"]] | None = Field(
"""表头列表""" default=None, description="每列的对齐方式"
rows: list[list[TableCell]] = [] # noqa: RUF012 )
"""数据行列表""" column_widths: list[str | int] | None = Field(
column_alignments: list[Literal["left", "center", "right"]] | None = None default=None, description="每列的宽度 (e.g., ['50px', 'auto', 100])"
"""每列的对齐方式""" )
column_widths: list[str | int] | None = None
"""每列的宽度 (e.g., ['50px', 'auto', 100])"""
@property @property
def template_name(self) -> str: def template_name(self) -> str: