UNPKG

@gguf/claw

Version:

WhatsApp gateway CLI (Baileys web) with Pi RPC agent

48 lines (41 loc) 1.25 kB
const TTL_MS = 24 * 60 * 60 * 1000; // 24 hours type CacheEntry = { messageIds: Set<string>; timestamps: Map<string, number>; }; const sentMessages = new Map<string, CacheEntry>(); function cleanupExpired(entry: CacheEntry): void { const now = Date.now(); for (const [msgId, timestamp] of entry.timestamps) { if (now - timestamp > TTL_MS) { entry.messageIds.delete(msgId); entry.timestamps.delete(msgId); } } } export function recordMSTeamsSentMessage(conversationId: string, messageId: string): void { if (!conversationId || !messageId) { return; } let entry = sentMessages.get(conversationId); if (!entry) { entry = { messageIds: new Set(), timestamps: new Map() }; sentMessages.set(conversationId, entry); } entry.messageIds.add(messageId); entry.timestamps.set(messageId, Date.now()); if (entry.messageIds.size > 200) { cleanupExpired(entry); } } export function wasMSTeamsMessageSent(conversationId: string, messageId: string): boolean { const entry = sentMessages.get(conversationId); if (!entry) { return false; } cleanupExpired(entry); return entry.messageIds.has(messageId); } export function clearMSTeamsSentMessageCache(): void { sentMessages.clear(); }