From 8be9d2cd47d95010f8182111e56cb86bbd2792b4 Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Sat, 21 Jan 2023 14:16:23 -0800 Subject: [PATCH] Speed up by reducing threshold --- src/agent/pool.js | 2 +- src/app/alerts.js | 13 +++++++++---- src/partials/Note.svelte | 2 +- src/routes/Alerts.svelte | 3 +-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/agent/pool.js b/src/agent/pool.js index 7413c2ae..4016b1f5 100644 --- a/src/agent/pool.js +++ b/src/agent/pool.js @@ -186,7 +186,7 @@ const request = (relays, filters, {threshold = 1} = {}) => { // a short timeout, or all after a long timeout, go ahead and unsubscribe. const done = ( eose.length === agg.subs.length - || eose.filter(url => relaysWithEvents.has(url)).length > threshold + || eose.filter(url => relaysWithEvents.has(url)).length >= threshold || ( Date.now() - now >= 1000 && eose.length > agg.subs.length - Math.round(agg.subs.length / 10) diff --git a/src/app/alerts.js b/src/app/alerts.js index edc7b1cb..305f9ba7 100644 --- a/src/app/alerts.js +++ b/src/app/alerts.js @@ -14,7 +14,7 @@ const onChunk = async (relays, pubkey, events) => { events = events.filter(e => isAlert(e, pubkey)) if (events.length > 0) { - const context = await loaders.loadContext(relays, events) + const context = await loaders.loadContext(relays, events, {threshold: 2}) const notes = threadify(events, context, {muffle: getMuffle()}) await db.alerts.bulkPut(notes) @@ -24,8 +24,12 @@ const onChunk = async (relays, pubkey, events) => { } const load = async (relays, pubkey) => { - const since = get(lastCheckedAlerts) - const events = await _load(relays, {kinds: [1, 7], '#p': [pubkey], since, limit: 100}) + const since = get(mostRecentAlert) + const events = await _load( + relays, + {kinds: [1, 7], '#p': [pubkey], since, limit: 100}, + {threshold: 2} + ) onChunk(relays, pubkey, events) } @@ -40,7 +44,8 @@ const listen = async (relays, pubkey) => { {kinds: [1, 7], '#p': [pubkey], since: now()}, batch(300, events => { onChunk(relays, pubkey, events) - }) + }), + {threshold: 2} ) } diff --git a/src/partials/Note.svelte b/src/partials/Note.svelte index 2c3d616c..b7c3f445 100644 --- a/src/partials/Note.svelte +++ b/src/partials/Note.svelte @@ -44,7 +44,7 @@ $: flag = find(whereEq({pubkey: $user?.pubkey}), flags) const onClick = e => { - if (!['I'].includes(e.target.tagName) && !e.target.closest('a')) { + if (interactive && !['I'].includes(e.target.tagName) && !e.target.closest('a')) { modal.set({type: 'note/detail', note, relays}) } } diff --git a/src/routes/Alerts.svelte b/src/routes/Alerts.svelte index 8f2df1ca..8a296f4b 100644 --- a/src/routes/Alerts.svelte +++ b/src/routes/Alerts.svelte @@ -3,7 +3,6 @@ import {onMount} from 'svelte' import {fly} from 'svelte/transition' import {now, createScroller} from 'src/util/misc' - import {isLike} from 'src/util/nostr' import {user, db} from 'src/agent' import {alerts} from 'src/app' import Note from 'src/partials/Note.svelte' @@ -21,7 +20,7 @@ const events = await db.alerts.toArray() const notes = events.filter(e => e.kind === 1) - const likes = events.filter(e => e.kind === 7 && isLike(e.content)) + const likes = events.filter(e => e.kind === 7) // Combine likes of a single note. Remove grandchild likes const likesById = {}