优化消息过滤逻辑,新增对语音消息的处理条件,支持通过URL和持续时间判断,同时增强对特殊格式消息的识别,提升代码可读性和用户体验。
This commit is contained in:
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user