From 60b4ea4643216d50f5455ac1207a253dbc3de2c1 Mon Sep 17 00:00:00 2001 From: Siddharth Singh Date: Mon, 24 Jun 2024 02:02:58 +0530 Subject: [PATCH 1/3] add config values for external nostr viewer back to source code --- src/config.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/config.ts b/src/config.ts index 502544d8..f80e5eed 100644 --- a/src/config.ts +++ b/src/config.ts @@ -63,6 +63,14 @@ class Conf { static get localDomain(): string { return Deno.env.get('LOCAL_DOMAIN') || `http://localhost:${Conf.port}`; } + /** Link to an external nostr viewer. */ + static get externalDomain(): string { + return Deno.env.get('NOSTR_EXTERNAL') || 'https://njump.me'; + } + /** Get a link to a nip19-encoded entity in the configured external viewer. */ + static external(path: string) { + return new URL(path, Conf.externalDomain); + } /** * Heroku-style database URL. This is used in production to connect to the * database. From f19afa449adb98b11b355661ae5028b2cd02fe87 Mon Sep 17 00:00:00 2001 From: Siddharth Singh Date: Mon, 24 Jun 2024 02:03:31 +0530 Subject: [PATCH 2/3] add the ditto.external field to statuses and accounts --- src/entities/MastodonAccount.ts | 1 + src/entities/MastodonStatus.ts | 3 +++ src/views/mastodon/accounts.ts | 1 + src/views/mastodon/statuses.ts | 3 +++ 4 files changed, 8 insertions(+) diff --git a/src/entities/MastodonAccount.ts b/src/entities/MastodonAccount.ts index 27cad244..4873ed4c 100644 --- a/src/entities/MastodonAccount.ts +++ b/src/entities/MastodonAccount.ts @@ -40,6 +40,7 @@ export interface MastodonAccount { username: string; ditto: { accepts_zaps: boolean; + external?: URL; }; pleroma: { deactivated: boolean; diff --git a/src/entities/MastodonStatus.ts b/src/entities/MastodonStatus.ts index 1fcbcacb..430f8e7f 100644 --- a/src/entities/MastodonStatus.ts +++ b/src/entities/MastodonStatus.ts @@ -39,4 +39,7 @@ export interface MastodonStatus { expires_at?: string; quotes_count: number; }; + ditto: { + external?: URL; + }; } diff --git a/src/views/mastodon/accounts.ts b/src/views/mastodon/accounts.ts index f9ed1cdc..4217f699 100644 --- a/src/views/mastodon/accounts.ts +++ b/src/views/mastodon/accounts.ts @@ -82,6 +82,7 @@ async function renderAccount( username: parsed05?.nickname || npub.substring(0, 8), ditto: { accepts_zaps: Boolean(getLnurl({ lud06, lud16 })), + external: Conf.externalDomain === Conf.localDomain ? undefined : Conf.external(npub), }, pleroma: { deactivated: names.has('disabled'), diff --git a/src/views/mastodon/statuses.ts b/src/views/mastodon/statuses.ts index d440b65c..7ac9c07a 100644 --- a/src/views/mastodon/statuses.ts +++ b/src/views/mastodon/statuses.ts @@ -124,6 +124,9 @@ async function renderStatus(event: DittoEvent, opts: RenderStatusOpts): Promise< uri: Conf.local(`/${note}`), url: Conf.local(`/${note}`), zapped: Boolean(zapEvent), + ditto: { + external: Conf.externalDomain === Conf.localDomain ? undefined : Conf.external(note), + }, pleroma: { emoji_reactions: reactions, expires_at: !isNaN(expiresAt.getTime()) ? expiresAt.toISOString() : undefined, From 3f7687d59fc1a9b9bb5c71ed482426d791b41acf Mon Sep 17 00:00:00 2001 From: Siddharth Singh Date: Mon, 24 Jun 2024 02:34:49 +0530 Subject: [PATCH 3/3] make changes according to 24-06-24 review --- src/config.ts | 2 +- src/entities/MastodonAccount.ts | 2 +- src/entities/MastodonStatus.ts | 2 +- src/views/mastodon/accounts.ts | 2 +- src/views/mastodon/statuses.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/config.ts b/src/config.ts index f80e5eed..1dd688b7 100644 --- a/src/config.ts +++ b/src/config.ts @@ -69,7 +69,7 @@ class Conf { } /** Get a link to a nip19-encoded entity in the configured external viewer. */ static external(path: string) { - return new URL(path, Conf.externalDomain); + return new URL(path, Conf.externalDomain).toString(); } /** * Heroku-style database URL. This is used in production to connect to the diff --git a/src/entities/MastodonAccount.ts b/src/entities/MastodonAccount.ts index 4873ed4c..a7fef5de 100644 --- a/src/entities/MastodonAccount.ts +++ b/src/entities/MastodonAccount.ts @@ -40,7 +40,7 @@ export interface MastodonAccount { username: string; ditto: { accepts_zaps: boolean; - external?: URL; + external_url: string; }; pleroma: { deactivated: boolean; diff --git a/src/entities/MastodonStatus.ts b/src/entities/MastodonStatus.ts index 430f8e7f..20c52438 100644 --- a/src/entities/MastodonStatus.ts +++ b/src/entities/MastodonStatus.ts @@ -40,6 +40,6 @@ export interface MastodonStatus { quotes_count: number; }; ditto: { - external?: URL; + external_url: string; }; } diff --git a/src/views/mastodon/accounts.ts b/src/views/mastodon/accounts.ts index 4217f699..5abb1aca 100644 --- a/src/views/mastodon/accounts.ts +++ b/src/views/mastodon/accounts.ts @@ -82,7 +82,7 @@ async function renderAccount( username: parsed05?.nickname || npub.substring(0, 8), ditto: { accepts_zaps: Boolean(getLnurl({ lud06, lud16 })), - external: Conf.externalDomain === Conf.localDomain ? undefined : Conf.external(npub), + external_url: Conf.external(npub), }, pleroma: { deactivated: names.has('disabled'), diff --git a/src/views/mastodon/statuses.ts b/src/views/mastodon/statuses.ts index 7ac9c07a..2fa8f313 100644 --- a/src/views/mastodon/statuses.ts +++ b/src/views/mastodon/statuses.ts @@ -125,7 +125,7 @@ async function renderStatus(event: DittoEvent, opts: RenderStatusOpts): Promise< url: Conf.local(`/${note}`), zapped: Boolean(zapEvent), ditto: { - external: Conf.externalDomain === Conf.localDomain ? undefined : Conf.external(note), + external_url: Conf.external(note), }, pleroma: { emoji_reactions: reactions,