From 0c9109f3876cedb9522db2b55f4f5a863db50d25 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Mon, 30 Dec 2024 15:15:22 -0800 Subject: [PATCH] Load messages more aggressively at the top level for all spaces --- src/app/requests.ts | 39 ++++++------------- src/routes/spaces/[relay]/[room]/+page.svelte | 6 --- 2 files changed, 11 insertions(+), 34 deletions(-) diff --git a/src/app/requests.ts b/src/app/requests.ts index 243ef33..b6656b5 100644 --- a/src/app/requests.ts +++ b/src/app/requests.ts @@ -1,9 +1,9 @@ -import {partition, assoc, now} from "@welshman/lib" -import {MESSAGE, REACTION, DELETE, THREAD, COMMENT} from "@welshman/util" +import {partition, assoc, now, ago, MONTH} from "@welshman/lib" +import {MESSAGE, DELETE, THREAD, COMMENT} from "@welshman/util" import type {Subscription} from "@welshman/net" import type {AppSyncOpts} from "@welshman/app" -import {subscribe, repository, load, pull, hasNegentropy} from "@welshman/app" -import {userRoomsByUrl, LEGACY_MESSAGE, GENERAL, getEventsForUrl} from "@app/state" +import {subscribe, repository, pull, hasNegentropy} from "@welshman/app" +import {userRoomsByUrl, getEventsForUrl} from "@app/state" // Utils @@ -29,16 +29,15 @@ export const pullConservatively = ({relays, filters}: AppSyncOpts) => { // Application requests export const listenForNotifications = () => { - const since = now() const subs: Subscription[] = [] for (const [url, rooms] of userRoomsByUrl.get()) { - load({ + pullConservatively({ relays: [url], filters: [ - {kinds: [THREAD], limit: 1}, - {kinds: [COMMENT], "#K": [String(THREAD)], limit: 1}, - ...Array.from(rooms).map(room => ({kinds: [MESSAGE], "#h": [room], limit: 1})), + {kinds: [THREAD, DELETE], since: ago(MONTH)}, + {kinds: [COMMENT], "#K": [String(THREAD)], since: ago(MONTH)}, + ...Array.from(rooms).map(room => ({kinds: [MESSAGE], "#h": [room], since: ago(MONTH)})), ], }) @@ -46,9 +45,9 @@ export const listenForNotifications = () => { subscribe({ relays: [url], filters: [ - {kinds: [THREAD], since}, - {kinds: [COMMENT], "#K": [String(THREAD)], since}, - {kinds: [MESSAGE], "#h": Array.from(rooms), since}, + {kinds: [THREAD], since: now()}, + {kinds: [COMMENT], "#K": [String(THREAD)], since: now()}, + {kinds: [MESSAGE], "#h": Array.from(rooms), since: now()}, ], }), ) @@ -60,19 +59,3 @@ export const listenForNotifications = () => { } } } - -export const listenForChannelMessages = (url: string, room: string) => { - const since = now() - const relays = [url] - const kinds = [MESSAGE, REACTION, DELETE] - const legacyRoom = room === GENERAL ? "general" : room - - // Load legacy immediate so our request doesn't get rejected by nip29 relays - load({relays, filters: [{kinds: [LEGACY_MESSAGE], "#~": [legacyRoom]}], delay: 0}) - - // Load historical state with negentropy if available - pullConservatively({relays, filters: [{kinds, "#h": [room]}]}) - - // Listen for new messages - return subscribe({relays, filters: [{kinds, "#h": [room], since}]}) -} diff --git a/src/routes/spaces/[relay]/[room]/+page.svelte b/src/routes/spaces/[relay]/[room]/+page.svelte index dbaff82..a8f5356 100644 --- a/src/routes/spaces/[relay]/[room]/+page.svelte +++ b/src/routes/spaces/[relay]/[room]/+page.svelte @@ -9,7 +9,6 @@ import type {TrustedEvent, EventContent} from "@welshman/util" import {throttled} from "@welshman/store" import {createEvent, MESSAGE} from "@welshman/util" - import type {Subscription} from "@welshman/net" import {formatTimestampAsDate, publishThunk, deriveRelay} from "@welshman/app" import {slide} from "@lib/transition" import {createScroller, type Scroller} from "@lib/html" @@ -34,7 +33,6 @@ } from "@app/state" import {setChecked} from "@app/notifications" import {nip29, addRoomMembership, removeRoomMembership, getThunkError} from "@app/commands" - import {listenForChannelMessages} from "@app/requests" import {PROTECTED, hasNip29} from "@app/state" import {popKey} from "@app/implicit" import {pushToast} from "@app/toast" @@ -92,7 +90,6 @@ let limit = 30 let loading = sleep(5000) - let sub: Subscription let element: HTMLElement let scroller: Scroller let editor: Readable @@ -138,14 +135,11 @@ loading = sleep(5000) }, }) - - sub = listenForChannelMessages(url, room) }) onDestroy(() => { setChecked($page.url.pathname) scroller?.stop() - sub?.close() })