From 3b66c47aa38fca060a10b4e227d5b8ccdc07b9d0 Mon Sep 17 00:00:00 2001 From: Last2014 Date: Thu, 30 Apr 2026 20:10:59 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20for=E6=96=87=E3=81=A7=E3=82=B9=E3=82=AD?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=81=A7=E3=81=AF=E3=81=AA=E3=81=8F=E3=83=AB?= =?UTF-8?q?=E3=83=BC=E3=83=97=E3=81=AE=E7=B5=82=E4=BA=86=E3=82=92=E8=A1=8C?= =?UTF-8?q?=E3=81=A3=E3=81=A6=E3=81=84=E3=81=9F=E5=95=8F=E9=A1=8C=20/=20Fe?= =?UTF-8?q?at:=20#10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/feature/command/help.ts | 2 +- src/feature/command/index.ts | 47 ++++++++++++++++++++------------- src/feature/earthquakeNotice.ts | 2 +- src/lib/memory.ts | 3 ++- 4 files changed, 32 insertions(+), 22 deletions(-) diff --git a/src/feature/command/help.ts b/src/feature/command/help.ts index 50a0a24..552cde8 100644 --- a/src/feature/command/help.ts +++ b/src/feature/command/help.ts @@ -47,7 +47,7 @@ export default async function helpCommand(ueuse: ueuseModule, args: string[]) { for (let i = 0; i < helps.length; i++) { const help = helps[i]; if (!help) - break; + continue; summarys += `${i18next.t(`help${help.charAt(0).toUpperCase()}${help.slice(1)}`)}${EOL}`; } diff --git a/src/feature/command/index.ts b/src/feature/command/index.ts index 2d89369..0d04155 100644 --- a/src/feature/command/index.ts +++ b/src/feature/command/index.ts @@ -17,16 +17,22 @@ try { { const response = await client.request("me/notification/", { + page: 1, limit: 20, }); if (response.success) { - for (const notification of response.data) { + for (const [index, notification] of response.data.entries()) { if (notification.category !== "reply") - break; + continue; if (!notification.valueid) { console.warn("返信通知にvalueidが存在しないため、スキップします"); + continue; + } + + const mem = Memory.memory; + if (mem.lastReadReply === notification.valueid) { break; } @@ -36,7 +42,12 @@ try { if (!ueuseResponse.success || !ueuseResponse.data[0]) { console.warn("返信通知からユーズを参照できないため、スキップします"); - break; + continue; + } + + if (index === 0) { + const mem = Memory.memory; + mem.lastReadReply = ueuseResponse.data[0].uniqid; } ueuses.push(ueuseResponse.data[0]); @@ -48,11 +59,24 @@ try { { const response = await client.request("ueuse/mentions", { + page: 1, limit: 20, }); if (response.success) { - ueuses.push(...response.data); + for (const [index, mention] of response.data.entries()) { + const mem = Memory.memory; + if (mem.lastReadMention === mention.uniqid) { + break; + } + + if (index === 0) { + const mem = Memory.memory; + mem.lastReadMention = mention.uniqid; + } + + ueuses.push(mention); + } } else { console.warn("メンションの取得に失敗しましたが、続行します"); } @@ -61,13 +85,6 @@ try { ueuses = [...new Set(ueuses)]; for (const ueuse of ueuses) { - const repliedUeuse = (Memory.memory["repliedUeuse"] as string[]); - - if (repliedUeuse.includes(ueuse.uniqid)) { - console.log("既に応答しているため、スキップします"); - break; - } - const mem = Memory.memory; let text = ueuse.text; text = text.replace(`@${mem.userid}`, ""); @@ -119,14 +136,6 @@ try { console.warn("ユーズの作成に失敗しました:", response.error_code); break; } - - { - const repliedUeuse = (Memory.memory["repliedUeuse"] as string[]); - repliedUeuse.push(ueuse.uniqid); - const mem = Memory.memory; - mem["repliedUeuse"] = repliedUeuse; - Memory.memory = mem; - } } process.exit(0); diff --git a/src/feature/earthquakeNotice.ts b/src/feature/earthquakeNotice.ts index 1ef9c99..43da366 100644 --- a/src/feature/earthquakeNotice.ts +++ b/src/feature/earthquakeNotice.ts @@ -111,7 +111,7 @@ const processMessage = async (message: any) => { for (const point of message.points) { const scaleMsg = scaleMessages[String(point.scale)]; if (!scaleMsg) - break; + continue; points[scaleMsg]?.push(point); } diff --git a/src/lib/memory.ts b/src/lib/memory.ts index 6db4ada..0e41425 100644 --- a/src/lib/memory.ts +++ b/src/lib/memory.ts @@ -10,8 +10,9 @@ class MemoryClass { if (!existsSync(path)) { writeFileSync(path, JSON.stringify({ processedInfo: [], - repliedUeuse: [], permissions: {}, + lastReadMention: "", + lastReadReply: "", userid: "", })); }