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.TypedFilter
import com.vitorpamplona.ammolite.relays.filters.EOSETime
import com.vitorpamplona.ammolite.relays.filters.SincePerRelayFilter
import com.vitorpamplona.quartz.nip01Core.core.HexKey
import com.vitorpamplona.quartz.nip01Core.metadata.MetadataEvent
import com.vitorpamplona.quartz.nip65RelayList.AdvertisedRelayListEvent
fun filterNewUserMetadataForKey(
authors: Set<HexKey>,
since: Map<String, EOSETime>?,
): List<TypedFilter> =
fun filterNewUserMetadataForKey(authors: Set<HexKey>): List<TypedFilter> =
listOf(
TypedFilter(
types = EVENT_FINDER_TYPES,
@@ -20,25 +20,21 @@
*/
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.ammolite.relays.NostrClient
import com.vitorpamplona.ammolite.relays.TypedFilter
import com.vitorpamplona.ammolite.relays.filters.EOSETime
class UserLoaderSubAssembler(
client: NostrClient,
allKeys: () -> Set<UserFinderQueryState>,
) : SingleSubEoseManager<UserFinderQueryState>(client, allKeys, invalidateAfterEose = true) {
override fun updateFilter(
keys: List<UserFinderQueryState>,
since: Map<String, EOSETime>?,
): List<TypedFilter>? {
) : SingleSubNoEoseCacheEoseManager<UserFinderQueryState>(client, allKeys, invalidateAfterEose = true) {
override fun updateFilter(keys: List<UserFinderQueryState>): List<TypedFilter>? {
val firstTimers = keys.filter { it.user.latestMetadata == null }.mapTo(mutableSetOf()) { it.user.pubkeyHex }
if (firstTimers.isEmpty()) return null
return filterNewUserMetadataForKey(firstTimers, since)
return filterNewUserMetadataForKey(firstTimers)
}
override fun distinct(key: UserFinderQueryState) = key.user