diff --git a/zhenxun/builtin_plugins/shop/html_image.py b/zhenxun/builtin_plugins/shop/html_image.py
deleted file mode 100644
index 59de1257..00000000
--- a/zhenxun/builtin_plugins/shop/html_image.py
+++ /dev/null
@@ -1,90 +0,0 @@
-from datetime import datetime
-import time
-
-from nonebot_plugin_htmlrender import template_to_pic
-from pydantic import BaseModel
-from tortoise.expressions import Q
-
-from zhenxun.configs.config import BotConfig
-from zhenxun.configs.path_config import THEMES_PATH
-from zhenxun.models.goods_info import GoodsInfo
-from zhenxun.utils._build_image import BuildImage
-
-from .config import ICON_PATH
-
-
-class GoodsItem(BaseModel):
- goods_list: list[dict]
- """商品列表"""
- partition: str
- """分区名称"""
-
-
-def get_limit_time(end_time: int):
- now = int(time.time())
- if now > end_time:
- return None
- current_datetime = datetime.fromtimestamp(now)
- end_datetime = datetime.fromtimestamp(end_time)
- time_difference = end_datetime - current_datetime
- total_seconds = time_difference.total_seconds()
- hours = int(total_seconds // 3600)
- minutes = int((total_seconds % 3600) // 60)
- return f"{hours}:{minutes}"
-
-
-def get_discount(price: int, discount: float):
- return None if discount == 1.0 else int(price * discount)
-
-
-async def html_image() -> bytes:
- """构建图片"""
- goods_list = (
- await GoodsInfo.filter(
- Q(goods_limit_time__gte=time.time()) | Q(goods_limit_time=0)
- )
- .annotate()
- .order_by("id")
- .all()
- )
- partition_dict: dict[str, list[dict]] = {}
- for idx, goods in enumerate(goods_list):
- if not goods.partition:
- goods.partition = "默认分区"
- if goods.partition not in partition_dict:
- partition_dict[goods.partition] = []
- icon = None
- if goods.icon:
- path = ICON_PATH / goods.icon
- if path.exists():
- icon = (
- "data:image/png;base64,"
- f"{BuildImage.open(ICON_PATH / goods.icon).pic2bs4()[9:]}"
- )
- partition_dict[goods.partition].append(
- {
- "id": idx + 1,
- "price": goods.goods_price,
- "discount_price": get_discount(goods.goods_price, goods.goods_discount),
- "limit_time": get_limit_time(goods.goods_limit_time),
- "daily_limit": goods.daily_limit or "∞",
- "name": goods.goods_name,
- "icon": icon,
- "description": goods.goods_description,
- }
- )
- data_list = [
- GoodsItem(goods_list=value, partition=partition)
- for partition, value in partition_dict.items()
- ]
- template_dir = THEMES_PATH / "default" / "templates" / "shop"
- return await template_to_pic(
- template_path=str(template_dir.absolute()),
- template_name="main.html",
- templates={"name": BotConfig.self_nickname, "data_list": data_list},
- pages={
- "viewport": {"width": 850, "height": 1024},
- "base_url": f"file://{THEMES_PATH.parent.absolute()}",
- },
- wait=2,
- )