From 979e02e7fa44025fe181fa908198b13f16354d1b Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 14 May 2025 14:55:53 -0400 Subject: [PATCH] Migrates event finder and channel finder to the new No Eose cache manager --- .../ChannelLoaderSubAssembler.kt | 10 +++------- .../FilterChannelMetadataCreationById.kt | 6 +----- .../event/loaders/FilterMissingAddressables.kt | 13 +++---------- .../event/loaders/FilterMissingEvents.kt | 15 ++++----------- .../loaders/NoteEventLoaderSubAssembler.kt | 17 +++++++---------- 5 files changed, 18 insertions(+), 43 deletions(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/ChannelLoaderSubAssembler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/ChannelLoaderSubAssembler.kt index c553a48be..399338b81 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/ChannelLoaderSubAssembler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/ChannelLoaderSubAssembler.kt @@ -20,11 +20,10 @@ */ package com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.nip28PublicChats -import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.SingleSubEoseManager +import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.SingleSubNoEoseCacheEoseManager import com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.ChannelFinderQueryState import com.vitorpamplona.ammolite.relays.NostrClient import com.vitorpamplona.ammolite.relays.TypedFilter -import com.vitorpamplona.ammolite.relays.filters.EOSETime /** * This assembler observes loads missing public chats when needed. @@ -38,11 +37,8 @@ import com.vitorpamplona.ammolite.relays.filters.EOSETime class ChannelLoaderSubAssembler( client: NostrClient, allKeys: () -> Set, -) : SingleSubEoseManager(client, allKeys, invalidateAfterEose = true) { - override fun updateFilter( - keys: List, - since: Map?, - ): List? = filterMissingChannelsById(keys, since) +) : SingleSubNoEoseCacheEoseManager(client, allKeys, invalidateAfterEose = true) { + override fun updateFilter(keys: List): List? = filterMissingChannelsById(keys) override fun distinct(key: ChannelFinderQueryState) = key.channel.idHex } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/FilterChannelMetadataCreationById.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/FilterChannelMetadataCreationById.kt index e1bff7054..861341191 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/FilterChannelMetadataCreationById.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/channel/nip28PublicChats/FilterChannelMetadataCreationById.kt @@ -24,14 +24,10 @@ import com.vitorpamplona.amethyst.model.PublicChatChannel import com.vitorpamplona.amethyst.service.relayClient.reqCommand.channel.ChannelFinderQueryState import com.vitorpamplona.ammolite.relays.EVENT_FINDER_TYPES import com.vitorpamplona.ammolite.relays.TypedFilter -import com.vitorpamplona.ammolite.relays.filters.EOSETime import com.vitorpamplona.ammolite.relays.filters.SincePerRelayFilter import com.vitorpamplona.quartz.nip28PublicChat.admin.ChannelCreateEvent -fun filterMissingChannelsById( - keys: List, - since: Map?, -): List? { +fun filterMissingChannelsById(keys: List): List? { val firstTimers = keys.mapNotNullTo(mutableSetOf()) { if (it.channel is PublicChatChannel && it.channel.event == null) { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt index 04211fe37..fd0fb282c 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingAddressables.kt @@ -24,14 +24,10 @@ import com.vitorpamplona.amethyst.model.AddressableNote import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderQueryState import com.vitorpamplona.ammolite.relays.EVENT_FINDER_TYPES import com.vitorpamplona.ammolite.relays.TypedFilter -import com.vitorpamplona.ammolite.relays.filters.EOSETime import com.vitorpamplona.ammolite.relays.filters.SincePerRelayFilter import com.vitorpamplona.quartz.nip01Core.tags.addressables.Address -fun filterMissingAddressables( - keys: List, - since: Map?, -): List? { +fun filterMissingAddressables(keys: List): List? { val missingAddressables = mutableSetOf
() keys.forEach { @@ -47,13 +43,10 @@ fun filterMissingAddressables( } } - return filterMissingAddressables(missingAddressables, since) + return filterMissingAddressables(missingAddressables) } -fun filterMissingAddressables( - missingAddressables: Set
, - since: Map?, -): List? { +fun filterMissingAddressables(missingAddressables: Set
): List? { if (missingAddressables.isEmpty()) return null return missingAddressables.map { aTag -> diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt index d1db72478..9fb917c1d 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/FilterMissingEvents.kt @@ -24,14 +24,10 @@ import com.vitorpamplona.amethyst.model.AddressableNote import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderQueryState import com.vitorpamplona.ammolite.relays.EVENT_FINDER_TYPES import com.vitorpamplona.ammolite.relays.TypedFilter -import com.vitorpamplona.ammolite.relays.filters.EOSETime import com.vitorpamplona.ammolite.relays.filters.SincePerRelayFilter import com.vitorpamplona.quartz.nip01Core.core.HexKey -fun filterMissingEvents( - keys: List, - since: Map?, -): List? { +fun filterMissingEvents(keys: List): List? { val missingEvents = mutableSetOf() keys.forEach { @@ -47,19 +43,16 @@ fun filterMissingEvents( } } - return filterMissingEvents(missingEvents, since) + return filterMissingEvents(missingEvents) } -fun filterMissingEvents( - missingEventIds: Set, - since: Map?, -): List? { +fun filterMissingEvents(missingEventIds: Set): List? { if (missingEventIds.isEmpty()) return null return listOf( TypedFilter( types = EVENT_FINDER_TYPES, - filter = SincePerRelayFilter(ids = missingEventIds.toList()), + filter = SincePerRelayFilter(ids = missingEventIds.sorted()), ), ) } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/NoteEventLoaderSubAssembler.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/NoteEventLoaderSubAssembler.kt index e066c0b2e..2a6497169 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/NoteEventLoaderSubAssembler.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/relayClient/reqCommand/event/loaders/NoteEventLoaderSubAssembler.kt @@ -20,22 +20,19 @@ */ package com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.loaders -import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.SingleSubEoseManager +import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.SingleSubNoEoseCacheEoseManager import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderQueryState import com.vitorpamplona.ammolite.relays.NostrClient -import com.vitorpamplona.ammolite.relays.filters.EOSETime class NoteEventLoaderSubAssembler( client: NostrClient, allKeys: () -> Set, -) : SingleSubEoseManager(client, allKeys, invalidateAfterEose = true) { - override fun updateFilter( - keys: List, - since: Map?, - ) = listOfNotNull( - filterMissingEvents(keys, since), - filterMissingAddressables(keys, since), - ).flatten() +) : SingleSubNoEoseCacheEoseManager(client, allKeys, invalidateAfterEose = true) { + override fun updateFilter(keys: List) = + listOfNotNull( + filterMissingEvents(keys), + filterMissingAddressables(keys), + ).flatten() override fun distinct(key: EventFinderQueryState) = key.note }