diff --git a/src/lib/tiptap.ts b/src/lib/tiptap.ts index 327b0bd9..61d5f555 100644 --- a/src/lib/tiptap.ts +++ b/src/lib/tiptap.ts @@ -5,11 +5,14 @@ import { nip19 } from 'nostr-tools' export function parseEditorJsonToText(node?: JSONContent) { const text = _parseEditorJsonToText(node).trim() - const regex = /(?:@|nostr:)?(nevent|naddr|nprofile|npub)1[a-zA-Z0-9]+/g + const regex = /(?:^|\s|@)(nostr:)?(nevent|naddr|nprofile|npub)1[a-zA-Z0-9]+/g return text.replace(regex, (match) => { let bech32 = match.trim() - if (bech32.startsWith('@')) { + const leadingSpace = match.startsWith(' ') ? ' ' : '' + if (bech32.startsWith('@nostr:')) { + bech32 = bech32.slice(7) + } else if (bech32.startsWith('@')) { bech32 = bech32.slice(1) } else if (bech32.startsWith('nostr:')) { bech32 = bech32.slice(6) @@ -17,7 +20,7 @@ export function parseEditorJsonToText(node?: JSONContent) { try { nip19.decode(bech32) - return `nostr:${bech32}` + return `${leadingSpace}nostr:${bech32}` } catch { return match } diff --git a/src/services/lightning.service.ts b/src/services/lightning.service.ts index 924b1518..f3965593 100644 --- a/src/services/lightning.service.ts +++ b/src/services/lightning.service.ts @@ -227,7 +227,7 @@ class LightningService { const res = await fetch(lnurl) const body = await res.json() - if (body.allowsNostr && body.nostrPubkey) { + if (body.allowsNostr !== false && body.callback) { return { callback: body.callback, lnurl