From c2edced7159e3800ff46c28085f49a605c7fdf4d Mon Sep 17 00:00:00 2001 From: hzrd149 Date: Tue, 28 Nov 2023 10:25:43 -0600 Subject: [PATCH] fix duplicate mentions in posts --- src/helpers/nostr/post.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/helpers/nostr/post.ts b/src/helpers/nostr/post.ts index 17604222d..18e82093d 100644 --- a/src/helpers/nostr/post.ts +++ b/src/helpers/nostr/post.ts @@ -6,6 +6,7 @@ import relayScoreboardService from "../../services/relay-scoreboard"; import { getPubkey, safeDecode } from "../nip19"; import { Emoji } from "../../providers/emoji-provider"; import { EventSplit } from "./zaps"; +import { unique } from "../array"; function addTag(tags: Tag[], tag: Tag, overwrite = false) { if (tags.some((t) => t[0] === tag[0] && t[1] === tag[1])) { @@ -68,12 +69,14 @@ export function correctContentMentions(content: string) { export function getContentMentions(content: string) { const matched = content.matchAll(/nostr:(npub1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{58})/gi); - return Array.from(matched) - .map((m) => { - const parsed = safeDecode(m[1]); - return parsed && getPubkey(parsed); - }) - .filter(Boolean) as string[]; + return unique( + Array.from(matched) + .map((m) => { + const parsed = safeDecode(m[1]); + return parsed && getPubkey(parsed); + }) + .filter(Boolean) as string[], + ); } export function ensureNotifyContentMentions(draft: DraftNostrEvent) {