diff --git a/ROADMAP.md b/ROADMAP.md index e95dccc9..5f8d8f38 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,6 @@ # Current +- [ ] Use submit buttons where relevant - [ ] Go over onboarding process, suggest some good relays for newcomers - [ ] Submit blog post with new onboarding process built in - [ ] Fix hover on notes in modal diff --git a/src/agent/sync.ts b/src/agent/sync.ts index 9a56623d..33ba4fc0 100644 --- a/src/agent/sync.ts +++ b/src/agent/sync.ts @@ -1,7 +1,7 @@ import {uniq, pick, identity, isEmpty} from 'ramda' import {nip05} from 'nostr-tools' import {noop, createMap, ensurePlural, chunk, switcherFn} from 'hurdak/lib/hurdak' -import {log} from 'src/util/logger' +import {log, warn} from 'src/util/logger' import {lnurlEncode, lnurlDecode, tryFetch, now, sleep, tryJson, timedelta, shuffle, hash} from 'src/util/misc' import {Tags, roomAttrs, personKinds, isRelay, isShareableRelay, normalizeRelayUrl} from 'src/util/nostr' import database from 'src/agent/database' @@ -326,9 +326,11 @@ const verifyZapper = async (pubkey, address) => { const res = await tryFetch(() => fetch(url)) - if (res) { + try { zapper = await res.json() lnurl = lnurlEncode('lnurl', url) + } catch (e) { + warn(e) } if (zapper?.allowsNostr && zapper?.nostrPubkey) { diff --git a/src/app/alerts.ts b/src/app/alerts.ts index 50177c79..ff2d4844 100644 --- a/src/app/alerts.ts +++ b/src/app/alerts.ts @@ -2,7 +2,7 @@ import type {DisplayEvent} from 'src/util/types' import {max, find, pluck, propEq, partition, uniq} from 'ramda' import {derived} from 'svelte/store' import {createMap} from 'hurdak/lib/hurdak' -import {synced, now, timedelta} from 'src/util/misc' +import {synced, tryJson, now, timedelta} from 'src/util/misc' import {Tags, personKinds, isAlert, asDisplayEvent, findReplyId} from 'src/util/nostr' import {getUserReadRelays} from 'src/agent/relays' import database from 'src/agent/database' @@ -76,8 +76,12 @@ const processAlerts = async (pubkey, events) => { zaps.filter(isPubkeyChild).forEach(e => { const parent = parents[findReplyId(e)] const note = asAlert(database.alerts.get(parent.id) || parent) + const meta = Tags.from(e).asMeta() + const request = tryJson(() => JSON.parse(meta.description)) - database.alerts.put({...note, zappedBy: uniq(note.zappedBy.concat(e.pubkey))}) + if (request) { + database.alerts.put({...note, zappedBy: uniq(note.zappedBy.concat(request.pubkey))}) + } }) likes.filter(isPubkeyChild).forEach(e => {