refactor: use Base64 for emoji CQ codes

This commit is contained in:
Naptie
2025-03-11 10:16:04 +08:00
parent e68040515a
commit 52c93ba080

View File

@@ -1,6 +1,5 @@
import base64 import base64
import html import html
import os
import time import time
from dataclasses import dataclass from dataclasses import dataclass
from typing import Dict, Optional from typing import Dict, Optional
@@ -17,7 +16,7 @@ from urllib3.util import create_urllib3_context
from ..models.utils_model import LLM_request from ..models.utils_model import LLM_request
from .config import global_config from .config import global_config
from .mapper import emojimapper 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 from .utils_user import get_user_nickname
driver = get_driver() driver = get_driver()
@@ -328,15 +327,10 @@ class CQCode:
Returns: Returns:
表情包CQ码字符串 表情包CQ码字符串
""" """
# 确保使用绝对路径 base64_content = image_path_to_base64(file_path)
abs_path = os.path.abspath(file_path)
# 转义特殊字符
escaped_path = abs_path.replace('&', '&') \
.replace('[', '[') \
.replace(']', ']') \
.replace(',', ',')
# 生成CQ码设置sub_type=1表示这是表情包 # 生成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: class CQCode_tool: