优化消息过滤逻辑,新增对语音消息的处理条件,支持通过URL和持续时间判断,同时增强对特殊格式消息的识别,提升代码可读性和用户体验。

This commit is contained in:
超级老白兔
2025-10-25 19:15:00 +08:00
parent 422fed2719
commit 781662026a

View File

@@ -12,14 +12,18 @@ export const messageFilter = (message: string) => {
case !!(parsed.previewImage || parsed.tencentUrl):
return "[图片]";
// 语音消息:包含 voiceUrl 或 voice
case !!(parsed.voiceUrl || parsed.voice):
return "[语音]";
// 视频消息:包含 videoUrl 或 video
// 视频消息:包含 videoUrl 或 video需要在语音消息之前判断
case !!(parsed.videoUrl || parsed.video):
return "[视频]";
// 语音消息:包含 voiceUrl、voice 或 (url + durationMs)
case !!(
parsed.voiceUrl ||
parsed.voice ||
(parsed.url && parsed.durationMs)
):
return parsed.text ? `[语音] ${parsed.text}` : "[语音]";
// 文件消息:包含 fileUrl 或 file
case !!(parsed.fileUrl || parsed.file):
return "[文件]";
@@ -45,7 +49,16 @@ export const messageFilter = (message: string) => {
return message;
}
} catch (error) {
// 如果不是 JSON 格式,直接返回原始消息
// 如果不是 JSON 格式,检查是否为特殊格式
// 以 @ 开头的图片URL例如@https://...jpg
if (
message.startsWith("@") &&
/\.(jpg|jpeg|png|gif|webp|bmp)(\?.*)?$/i.test(message)
) {
return "[图片]";
}
// 其他情况直接返回原始消息
return message;
}
};