From 52c93ba080da5e0b2990c4540d7f4d724687d4a3 Mon Sep 17 00:00:00 2001 From: Naptie Date: Tue, 11 Mar 2025 10:16:04 +0800 Subject: [PATCH] refactor: use Base64 for emoji CQ codes --- src/plugins/chat/cq_code.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/src/plugins/chat/cq_code.py b/src/plugins/chat/cq_code.py index b13e33e48..5ebe4ab3d 100644 --- a/src/plugins/chat/cq_code.py +++ b/src/plugins/chat/cq_code.py @@ -1,6 +1,5 @@ import base64 import html -import os import time from dataclasses import dataclass from typing import Dict, Optional @@ -17,7 +16,7 @@ from urllib3.util import create_urllib3_context from ..models.utils_model import LLM_request from .config import global_config from .mapper import emojimapper -from .utils_image import storage_emoji, storage_image +from .utils_image import image_path_to_base64, storage_emoji, storage_image from .utils_user import get_user_nickname driver = get_driver() @@ -328,15 +327,10 @@ class CQCode: Returns: 表情包CQ码字符串 """ - # 确保使用绝对路径 - abs_path = os.path.abspath(file_path) - # 转义特殊字符 - escaped_path = abs_path.replace('&', '&') \ - .replace('[', '[') \ - .replace(']', ']') \ - .replace(',', ',') + base64_content = image_path_to_base64(file_path) + # 生成CQ码,设置sub_type=1表示这是表情包 - return f"[CQ:image,file=file:///{escaped_path},sub_type=1]" + return f"[CQ:image,file=base64://{base64_content},sub_type=1]" class CQCode_tool: