diff --git a/ROADMAP.md b/ROADMAP.md
index 5f8d8f38..546969f7 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -38,6 +38,7 @@
# More
+- [ ] Separate mentions from other notifications
- [ ] Performance
- same deal as with formatTimestamp, don't use functions inline since svelte can't cache them
- [ ] Image Uploads
diff --git a/src/App.svelte b/src/App.svelte
index 869fccb6..d11d98b8 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -43,6 +43,7 @@
import NotFound from "src/routes/NotFound.svelte"
import PersonDetail from "src/routes/PersonDetail.svelte"
import Search from "src/routes/Search.svelte"
+ import Scan from "src/routes/Scan.svelte"
import RelayDetail from "src/routes/RelayDetail.svelte"
import RelayList from "src/routes/RelayList.svelte"
import Profile from "src/views/Profile.svelte"
@@ -177,9 +178,14 @@
{#if $ready}
-
+
-
+
+
+
+
+
+
diff --git a/src/agent/sync.ts b/src/agent/sync.ts
index 33ba4fc0..49e31528 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, warn} from 'src/util/logger'
+import {log} 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'
@@ -307,7 +307,7 @@ const verifyNip05 = (pubkey, as) =>
}, noop)
const verifyZapper = async (pubkey, address) => {
- let url, zapper, lnurl
+ let url
// Try to parse it as a lud06 LNURL or as a lud16 address
if (address.startsWith('lnurl1')) {
@@ -325,13 +325,8 @@ const verifyZapper = async (pubkey, address) => {
}
const res = await tryFetch(() => fetch(url))
-
- try {
- zapper = await res.json()
- lnurl = lnurlEncode('lnurl', url)
- } catch (e) {
- warn(e)
- }
+ const zapper = await tryJson(() => res.json())
+ const lnurl = lnurlEncode('lnurl', url)
if (zapper?.allowsNostr && zapper?.nostrPubkey) {
database.people.patch({pubkey, zapper, lnurl})
diff --git a/src/partials/EnsureData.svelte b/src/partials/EnsureData.svelte
index 1d0d1c98..ca8b4757 100644
--- a/src/partials/EnsureData.svelte
+++ b/src/partials/EnsureData.svelte
@@ -5,7 +5,7 @@
import PersonInfo from "src/views/person/PersonInfo.svelte"
import RelaySearch from "src/views/relays/RelaySearch.svelte"
import RelayCard from "src/views/relays/RelayCard.svelte"
- import SearchPeople from "src/views/search/SearchPeople.svelte"
+ import Search from "src/routes/Search.svelte"
import database from 'src/agent/database'
import user from 'src/agent/user'
@@ -76,8 +76,8 @@
{/each}
-
+
{:else if needsPeople()}
diff --git a/src/routes/Scan.svelte b/src/routes/Scan.svelte
new file mode 100644
index 00000000..7f04767c
--- /dev/null
+++ b/src/routes/Scan.svelte
@@ -0,0 +1,81 @@
+
+
+
+
+
+ Enter any nostr identifier (npub, nevent, nprofile, note or user@domain.tld), or click on the
+ camera icon to scan with your device's camera instead.
+