41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
// 聊天消息工具函数,承接主消息渲染脚本里可独立复用的判断逻辑。
|
|
|
|
/**
|
|
* 判断图片消息是否已经超过前端允许展示的保留期。
|
|
*
|
|
* @param {Record<string, any>|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;
|
|
}
|