Migrates missing User filter to the new no EOSE cache manager

This commit is contained in:
Vitor Pamplona
2025-05-14 14:56:47 -04:00
parent 0f018140f0
commit 6a91b68b4b
2 changed files with 5 additions and 13 deletions
@@ -22,16 +22,12 @@ package com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.loaders
import com.vitorpamplona.ammolite.relays.EVENT_FINDER_TYPES import com.vitorpamplona.ammolite.relays.EVENT_FINDER_TYPES
import com.vitorpamplona.ammolite.relays.TypedFilter import com.vitorpamplona.ammolite.relays.TypedFilter
import com.vitorpamplona.ammolite.relays.filters.EOSETime
import com.vitorpamplona.ammolite.relays.filters.SincePerRelayFilter import com.vitorpamplona.ammolite.relays.filters.SincePerRelayFilter
import com.vitorpamplona.quartz.nip01Core.core.HexKey import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
fun filterNewUserMetadataForKey( fun filterNewUserMetadataForKey(authors: Set<HexKey>): List<TypedFilter> =
authors: Set<HexKey>,
since: Map<String, EOSETime>?,
): List<TypedFilter> =
listOf( listOf(
TypedFilter( TypedFilter(
types = EVENT_FINDER_TYPES, types = EVENT_FINDER_TYPES,
@@ -20,25 +20,21 @@
*/ */
package com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.loaders package com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.loaders
import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.SingleSubEoseManager import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.SingleSubNoEoseCacheEoseManager
import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.UserFinderQueryState import com.vitorpamplona.amethyst.service.relayClient.reqCommand.user.UserFinderQueryState
import com.vitorpamplona.ammolite.relays.NostrClient import com.vitorpamplona.ammolite.relays.NostrClient
import com.vitorpamplona.ammolite.relays.TypedFilter import com.vitorpamplona.ammolite.relays.TypedFilter
import com.vitorpamplona.ammolite.relays.filters.EOSETime
class UserLoaderSubAssembler( class UserLoaderSubAssembler(
client: NostrClient, client: NostrClient,
allKeys: () -> Set<UserFinderQueryState>, allKeys: () -> Set<UserFinderQueryState>,
) : SingleSubEoseManager<UserFinderQueryState>(client, allKeys, invalidateAfterEose = true) { ) : SingleSubNoEoseCacheEoseManager<UserFinderQueryState>(client, allKeys, invalidateAfterEose = true) {
override fun updateFilter( override fun updateFilter(keys: List<UserFinderQueryState>): List<TypedFilter>? {
keys: List<UserFinderQueryState>,
since: Map<String, EOSETime>?,
): List<TypedFilter>? {
val firstTimers = keys.filter { it.user.latestMetadata == null }.mapTo(mutableSetOf()) { it.user.pubkeyHex } val firstTimers = keys.filter { it.user.latestMetadata == null }.mapTo(mutableSetOf()) { it.user.pubkeyHex }
if (firstTimers.isEmpty()) return null if (firstTimers.isEmpty()) return null
return filterNewUserMetadataForKey(firstTimers, since) return filterNewUserMetadataForKey(firstTimers)
} }
override fun distinct(key: UserFinderQueryState) = key.user override fun distinct(key: UserFinderQueryState) = key.user