From ab00bd84e6464f1e34c4e7f1fc31ad3c5d2df071 Mon Sep 17 00:00:00 2001 From: Gigi Date: Thu, 2 Oct 2025 10:39:57 +0200 Subject: [PATCH] fix(bookmarks): hide encrypted ciphertext from title/preview; prefer plaintext content --- src/services/bookmarkService.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/services/bookmarkService.ts b/src/services/bookmarkService.ts index e37cf545..e4289680 100644 --- a/src/services/bookmarkService.ts +++ b/src/services/bookmarkService.ts @@ -31,6 +31,16 @@ function isAccountWithExtension(account: unknown): account is AccountWithExtensi return typeof account === 'object' && account !== null && 'pubkey' in account } +function isEncryptedContent(content: string | undefined): boolean { + if (!content) return false + return ( + content.startsWith('nip44:') || + content.startsWith('nip04:') || + content.includes('?iv=') || + content.includes('?version=') + ) +} + const processApplesauceBookmarks = ( bookmarks: unknown, activeAccount: ActiveAccount, @@ -125,7 +135,7 @@ export const fetchBookmarks = async ( let allTags: string[][] = [] for (const evt of bookmarkListEvents) { newestCreatedAt = Math.max(newestCreatedAt, evt.created_at || 0) - if (!latestContent && evt.content) latestContent = evt.content + if (!latestContent && evt.content && !isEncryptedContent(evt.content)) latestContent = evt.content if (Array.isArray(evt.tags)) allTags = allTags.concat(evt.tags) // public const pub = Helpers.getPublicBookmarks(evt)