From 1fd5ba0451bba67b61a7206999de690fe9cf0bda Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 2 Oct 2025 16:39:47 -0400 Subject: [PATCH] Adds ease of use functions for the downloadFirst Event extension method --- .../NostrClientSingleDownloadExt.kt | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/accessories/NostrClientSingleDownloadExt.kt b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/accessories/NostrClientSingleDownloadExt.kt index 85fc4b4c4..7b2acdc17 100644 --- a/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/accessories/NostrClientSingleDownloadExt.kt +++ b/quartz/src/commonMain/kotlin/com/vitorpamplona/quartz/nip01Core/relay/client/accessories/NostrClientSingleDownloadExt.kt @@ -27,9 +27,42 @@ import com.vitorpamplona.quartz.nip01Core.relay.client.single.IRelayClient import com.vitorpamplona.quartz.nip01Core.relay.client.single.newSubId import com.vitorpamplona.quartz.nip01Core.relay.filters.Filter import com.vitorpamplona.quartz.nip01Core.relay.normalizer.NormalizedRelayUrl +import com.vitorpamplona.quartz.nip01Core.relay.normalizer.RelayUrlNormalizer import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.withTimeoutOrNull +suspend fun INostrClient.downloadFirstEvent( + relay: String, + filter: Filter, +) = downloadFirstEvent(newSubId(), mapOf(RelayUrlNormalizer.normalize(relay) to listOf(filter))) + +suspend fun INostrClient.downloadFirstEvent( + relay: String, + filters: List, +) = downloadFirstEvent(newSubId(), mapOf(RelayUrlNormalizer.normalize(relay) to filters)) + +suspend fun INostrClient.downloadFirstEvent( + subscriptionId: String = newSubId(), + relay: String, + filters: List, +) = downloadFirstEvent(subscriptionId, mapOf(RelayUrlNormalizer.normalize(relay) to filters)) + +suspend fun INostrClient.downloadFirstEvent( + relay: NormalizedRelayUrl, + filter: Filter, +) = downloadFirstEvent(newSubId(), mapOf(relay to listOf(filter))) + +suspend fun INostrClient.downloadFirstEvent( + relay: NormalizedRelayUrl, + filters: List, +) = downloadFirstEvent(newSubId(), mapOf(relay to filters)) + +suspend fun INostrClient.downloadFirstEvent( + subscriptionId: String = newSubId(), + relay: NormalizedRelayUrl, + filters: List, +) = downloadFirstEvent(subscriptionId, mapOf(relay to filters)) + suspend fun INostrClient.downloadFirstEvent( subscriptionId: String = newSubId(), filters: Map>,