diff --git a/src/feature/command/index.ts b/src/feature/command/index.ts index f4ef588..6adefa5 100644 --- a/src/feature/command/index.ts +++ b/src/feature/command/index.ts @@ -29,16 +29,11 @@ try { const mem = Memory.memory; const lastReadReply = mem.lastReadReply; - mem.lastReadReply = notifications[0]?.valueid ?? lastReadReply; - Memory.memory = mem; - for (const notification of notifications) { + for (const [index, notification] of notifications.entries()) { if (notification.category !== "reply" || typeof notification.valueid !== "string") continue; - if (lastReadReply === notification.valueid) - break; - const ueuseResponse = await client.request("ueuse/get", { uniqid: notification.valueid, }); @@ -48,6 +43,17 @@ try { continue; } + const time = new Date(ueuseResponse.data[0].datetime).getTime(); + + if (index === 0) { + const mem = Memory.memory; + mem.lastReadReply = time; + Memory.memory = mem; + } + + if (lastReadReply >= time) + break; + ueuses.push(ueuseResponse.data[0]); } } else { @@ -67,14 +73,19 @@ try { const mem = Memory.memory; const lastReadMention = mem.lastReadMention; - mem.lastReadMention = mentions[0]?.uniqid ?? lastReadMention; - Memory.memory = mem; - for (const mention of mentions) { - if (lastReadMention === mention.uniqid) { - break; + for (const [index, mention] of mentions.entries()) { + const time = new Date(mention.datetime).getTime(); + + if (index === 0) { + const mem = Memory.memory; + mem.lastReadMention = time; + Memory.memory = mem; } + if (lastReadMention >= time) + break; + ueuses.push(mention); } } else { diff --git a/src/lib/memory.ts b/src/lib/memory.ts index f0c6962..5e89aec 100644 --- a/src/lib/memory.ts +++ b/src/lib/memory.ts @@ -11,8 +11,8 @@ class MemoryClass { writeFileSync(path, JSON.stringify({ processedInfo: [], permissions: {}, - lastReadMention: "", - lastReadReply: "", + lastReadMention: 0, + lastReadReply: 0, userid: "", max_length: 0, }));