// 聊天消息工具函数,承接主消息渲染脚本里可独立复用的判断逻辑。 /** * 判断图片消息是否已经超过前端允许展示的保留期。 * * @param {Record|null|undefined} message 聊天消息 * @param {number} retentionDays 图片保留天数 * @param {number} nowTimestamp 当前时间戳 * @returns {boolean} */ export function isExpiredChatImageMessage( message, retentionDays = Number.parseInt(window.chatContext?.chatImageRetentionDays || 3, 10), nowTimestamp = Date.now(), ) { if (!message) { return false; } if (message.message_type === "expired_image") { return true; } if (message.message_type !== "image") { return false; } if (!message.image_url || !message.image_thumb_url) { return true; } const sentAtText = String(message.sent_at || "").replace(" ", "T"); const sentAt = sentAtText ? new Date(sentAtText) : null; if (!sentAt || Number.isNaN(sentAt.getTime())) { return false; } return nowTimestamp >= sentAt.getTime() + retentionDays * 24 * 60 * 60 * 1000; }