Migrates missing User filter to the new no EOSE cache manager
This commit is contained in:
+1
-5
@@ -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,
|
||||||
|
|||||||
+4
-8
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user