From 05246ae8d0597ef86f912476ed0a369424d19a72 Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Fri, 7 Nov 2025 13:47:47 -0500 Subject: Dim messages near expiry --- src/locales/en.json | 1 + src/locales/fr.json | 1 + src/routes/(app)/dm/[recipient]/+page.svelte | 20 ++++++++++++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index a8b8a06a..427c8d96 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -97,6 +97,7 @@ "recipientMsg": "You are sending nostr messages to [R].", "sendMessage": "Send Message", "expiry": "Enable message expiry", + "fadedWarning": "To avoid metadata leaks, messages expire at a random time up to 2 days after you specify; each message has its own random expiry time. Messages which appear faded are close to expiring; nearby messages may be missing.", "days": "days", "relaysNotFound": "Could not find [R]’s DM relays.", "noRelaysSet": "WARNING: You haven't set any preferred relays. You won't be able to receive any messages or see the messages you've sent.", diff --git a/src/locales/fr.json b/src/locales/fr.json index 76d3c5c2..4a096420 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -29,6 +29,7 @@ "recipientMsg": "Vous envoyez messages nostr à [R].", "sendMessage": "Envoyez Message", "expiry": "Expirez messages", + "fadedWarning": "Pour protéger vos métadonées, vos messages expirent à un temps randomée au maximum 2 jours après la date que vous spécifiez; chaque message a son propre temps d’expiration randomée. Les messages qui semble faibles sont proche à expirer; les autres messages autours pouvait avoir déjà disparu.", "days": "jours", "relaysNotFound": "Ne pouvait pas trouvez les relais MD de [R].", "noRelaysSet": "AVERTISSEMENT: Vous n’avez pas specifié vos relais préferés pour messages directs. Vous ne pouvez pas reçevoir des messages ou voir les messages que vous avez envoyé.", diff --git a/src/routes/(app)/dm/[recipient]/+page.svelte b/src/routes/(app)/dm/[recipient]/+page.svelte index c64df7f7..443119fe 100644 --- a/src/routes/(app)/dm/[recipient]/+page.svelte +++ b/src/routes/(app)/dm/[recipient]/+page.svelte @@ -75,6 +75,10 @@ return false; } + const expirationClose = (expiration: number) => { + return expiration <= (Date.now() / 1000 + 2 * 86400); + } + const loadEvents = async (relays: string[]) => { const wrapped = await pool.querySync( relays, { kinds: [1059], "#p": [user.pubkey], limit: DM_FETCH_LIMIT } @@ -86,6 +90,11 @@ if (!expired(event)) { const rumour = await decryptMessage(event); const created = Math.floor(rumour.created_at / 86400); + for (const tag of event.tags) { + if (tag[0] == "expiration") { + rumour.expiration = parseInt(tag[1]); + } + } appendMultimap(decryptedRumours, created, rumour); } else console.log("relay contains expired event", event.id); } @@ -130,9 +139,6 @@ message, sk, recipient.pubkey, user.pubkey, expiry); } - console.log(Date.now() / 1000); - console.log(event2.tags); - const recipientRelays = await getPreferredRelays(recipient.pubkey); const p1 = Promise.any(pool.publish(recipientRelays, event1)); const senderRelays = await getPreferredRelays(user.pubkey); @@ -166,6 +172,10 @@ color: #ff7f00; } + .expiring { + color: #7f7f7f; + } + .link { text-decoration-line: underline; } @@ -205,7 +215,7 @@ @@ -215,6 +225,8 @@ {$t("dm.expiry")}: {$t("dm.days")}. +

{$t("dm.fadedWarning")}

+ sendMessage(text)}> {#if relayWarningShown}

{$t("dm.noRelaysSet")} {$t("dm.nostrSettingsLink")}

-- cgit v1.2.3