From e04c6e7b851d3a9e06ed41b6e548cb68fdf1dcee Mon Sep 17 00:00:00 2001 From: naskya Date: Thu, 20 Jul 2023 07:23:51 +0000 Subject: [PATCH] feat: search cw comments and image alt texts in antennas (close #24) --- README.md | 2 ++ packages/backend/src/misc/check-hit-antenna.ts | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ab5525d5..3fa382b8 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ ## 細かい変更点 +- 閲覧注意の注釈と画像の代替テキストもアンテナで調べる対象にする + - ~~「そぎぎ」でアンテナを作れる~~ - インデックス拒否に `noindex` に加えて `nofollow,noarchive,nocache,noimageindex` も指定 - インスタンスティッカーに表示するサーバーのアイコンとして favicon を優先する - favicon のほうがよくカスタマイズされているため diff --git a/packages/backend/src/misc/check-hit-antenna.ts b/packages/backend/src/misc/check-hit-antenna.ts index 1ff09d62..7b9c2a15 100644 --- a/packages/backend/src/misc/check-hit-antenna.ts +++ b/packages/backend/src/misc/check-hit-antenna.ts @@ -95,14 +95,19 @@ export async function checkHitAntenna( .map((xs) => xs.filter((x) => x !== "")) .filter((xs) => xs.length > 0); + let text = `${note.text ?? ""} ${note.cw ?? ""}`; + if (note.files != null) + text += ` ${note.files.map((f) => f.comment ?? "").join(" ")}`; + text = text.trim(); + if (keywords.length > 0) { if (note.text == null) return false; const matched = keywords.some((and) => and.every((keyword) => antenna.caseSensitive - ? note.text!.includes(keyword) - : note.text!.toLowerCase().includes(keyword.toLowerCase()), + ? text.includes(keyword) + : text.toLowerCase().includes(keyword.toLowerCase()), ), );