mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-10-10 16:03:25 +02:00
new map of set api
This commit is contained in:
@@ -22,12 +22,12 @@ package com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.loaders
|
|||||||
|
|
||||||
import com.vitorpamplona.amethyst.model.AddressableNote
|
import com.vitorpamplona.amethyst.model.AddressableNote
|
||||||
import com.vitorpamplona.amethyst.model.LocalCache
|
import com.vitorpamplona.amethyst.model.LocalCache
|
||||||
|
import com.vitorpamplona.amethyst.model.LocalCache.relayHints
|
||||||
import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderQueryState
|
import com.vitorpamplona.amethyst.service.relayClient.reqCommand.event.EventFinderQueryState
|
||||||
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
import com.vitorpamplona.quartz.nip01Core.core.HexKey
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.pool.RelayBasedFilter
|
import com.vitorpamplona.quartz.nip01Core.relay.client.pool.RelayBasedFilter
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl
|
import com.vitorpamplona.quartz.utils.mapOfSet
|
||||||
import com.vitorpamplona.quartz.utils.MapOfSetBuilder
|
|
||||||
|
|
||||||
fun filterMissingEvents(keys: List<EventFinderQueryState>): List<RelayBasedFilter>? {
|
fun filterMissingEvents(keys: List<EventFinderQueryState>): List<RelayBasedFilter>? {
|
||||||
val missingEvents = mutableSetOf<String>()
|
val missingEvents = mutableSetOf<String>()
|
||||||
@@ -51,15 +51,16 @@ fun filterMissingEvents(keys: List<EventFinderQueryState>): List<RelayBasedFilte
|
|||||||
fun filterMissingEvents(missingEventIds: Set<HexKey>): List<RelayBasedFilter> {
|
fun filterMissingEvents(missingEventIds: Set<HexKey>): List<RelayBasedFilter> {
|
||||||
if (missingEventIds.isEmpty()) return emptyList()
|
if (missingEventIds.isEmpty()) return emptyList()
|
||||||
|
|
||||||
val relayHints = MapOfSetBuilder<NormalizedRelayUrl, HexKey>()
|
val relayHints =
|
||||||
|
mapOfSet {
|
||||||
missingEventIds.forEach { eventId ->
|
missingEventIds.forEach { eventId ->
|
||||||
LocalCache.relayHints.hintsForEvent(eventId).forEach { relayUrl ->
|
LocalCache.relayHints.hintsForEvent(eventId).forEach { relayUrl ->
|
||||||
relayHints.add(relayUrl, eventId)
|
add(relayUrl, eventId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return relayHints.build().map {
|
return relayHints.map {
|
||||||
RelayBasedFilter(
|
RelayBasedFilter(
|
||||||
relay = it.key,
|
relay = it.key,
|
||||||
filter = Filter(ids = it.value.sorted()),
|
filter = Filter(ids = it.value.sorted()),
|
||||||
|
Reference in New Issue
Block a user