Bug fix for publishing directly to a relay
This commit is contained in:
1 parent
58a98f68ae
commit
a268a9ab71
3 files changed
+12
-9
No files matched your search
+5
-2
@@ -170,14 +170,17 @@ class RelayPool(
|
|||||||
|
|
||||||
@Throws(NostrPublishException::class)
|
@Throws(NostrPublishException::class)
|
||||||
suspend fun publishEvent(nostrEvent: NostrEvent, relays: Set<RelayDTO> = emptySet()): Flow<NostrPublishResult> {
|
suspend fun publishEvent(nostrEvent: NostrEvent, relays: Set<RelayDTO> = emptySet()): Flow<NostrPublishResult> {
|
||||||
val relayUrls = relays.map { it.url }
|
val relayUrls = relays.map { NormalizedRelayUrl(it.url).displayUrl() }
|
||||||
|
|
||||||
return if (relayUrls.isEmpty()) {
|
return if (relayUrls.isEmpty()) {
|
||||||
|
logger.w("Empty Relays")
|
||||||
handlePublishEventToRelays(socketClients, nostrEvent)
|
handlePublishEventToRelays(socketClients, nostrEvent)
|
||||||
} else {
|
} else {
|
||||||
|
logger.d("Add Relays: $relays")
|
||||||
addRelaysIfMissing(relays)
|
addRelaysIfMissing(relays)
|
||||||
|
|
||||||
val filteredSocketClients = socketClients.filter { relayUrls.contains(it.socketUrl) }
|
val filteredSocketClients = socketClients.filter { NormalizedRelayUrl(it.socketUrl).displayUrl() in relayUrls }
|
||||||
|
logger.d("filteredSocketClients: ${filteredSocketClients.map { it.socketUrl }}")
|
||||||
|
|
||||||
handlePublishEventToRelays(filteredSocketClients.toSet(), nostrEvent)
|
handlePublishEventToRelays(filteredSocketClients.toSet(), nostrEvent)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -122,6 +122,7 @@ class RelaysSocketManager constructor(
|
|||||||
|
|
||||||
@Throws(NostrPublishException::class)
|
@Throws(NostrPublishException::class)
|
||||||
suspend fun publishEvent(nostrEvent: NostrEvent, relays: Set<RelayDTO>): Flow<NostrPublishResult> {
|
suspend fun publishEvent(nostrEvent: NostrEvent, relays: Set<RelayDTO>): Flow<NostrPublishResult> {
|
||||||
|
logger.d("publishEvent: $nostrEvent")
|
||||||
return relayPool.publishEvent(
|
return relayPool.publishEvent(
|
||||||
nostrEvent = nostrEvent,
|
nostrEvent = nostrEvent,
|
||||||
relays = relays
|
relays = relays
|
||||||
|
|||||||
+6
-7
@@ -6,6 +6,7 @@ import ac.cord.auxiliary.compose.database.model.SynchronizeNostrEventRequest
|
|||||||
import ac.cord.auxiliary.compose.database.model.types.SynchronizationFilter
|
import ac.cord.auxiliary.compose.database.model.types.SynchronizationFilter
|
||||||
import ac.cord.auxiliary.compose.managers.SeedManager
|
import ac.cord.auxiliary.compose.managers.SeedManager
|
||||||
import ac.cord.auxiliary.compose.network.dto.RelayDTO
|
import ac.cord.auxiliary.compose.network.dto.RelayDTO
|
||||||
|
import ac.cord.auxiliary.compose.network.dto.toRelayDTO
|
||||||
import ac.cord.auxiliary.compose.network.relays.RelayPool.Companion.PUBLISH_TIMEOUT
|
import ac.cord.auxiliary.compose.network.relays.RelayPool.Companion.PUBLISH_TIMEOUT
|
||||||
import ac.cord.auxiliary.compose.network.relays.RelaysSocketManager
|
import ac.cord.auxiliary.compose.network.relays.RelaysSocketManager
|
||||||
import ac.cord.auxiliary.compose.network.sockets.NostrIncomingMessage
|
import ac.cord.auxiliary.compose.network.sockets.NostrIncomingMessage
|
||||||
@@ -366,12 +367,14 @@ class NavigationViewModel(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val broadcastNostrEventRequests = result.sendIds.map { nostrEventId ->
|
val eventIds = events.map { it.id }
|
||||||
|
val broadcastNostrEventRequests = result.sendIds.filter { it.toHexString() in eventIds }.map { sendId ->
|
||||||
BroadcastNostrEventRequest(
|
BroadcastNostrEventRequest(
|
||||||
nostrEventId = nostrEventId.toHexString(),
|
nostrEventId = sendId.toHexString(),
|
||||||
relayURL = negentropySynchronizeRequest.relayURL
|
relayURL = negentropySynchronizeRequest.relayURL
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
logger.d("broadcastNostrEventRequests: $broadcastNostrEventRequests")
|
||||||
nostrRepository.scheduleBroadcastNostrEventRequests(
|
nostrRepository.scheduleBroadcastNostrEventRequests(
|
||||||
broadcastNostrEventRequests
|
broadcastNostrEventRequests
|
||||||
)
|
)
|
||||||
@@ -443,11 +446,7 @@ class NavigationViewModel(
|
|||||||
relaysSocketManager.publishEvent(
|
relaysSocketManager.publishEvent(
|
||||||
localBroadcastNostrEventRequest.nostrEvent,
|
localBroadcastNostrEventRequest.nostrEvent,
|
||||||
setOf(
|
setOf(
|
||||||
RelayDTO(
|
localBroadcastNostrEventRequest.broadcastNostrEventRequest.relayURL.toRelayDTO()
|
||||||
localBroadcastNostrEventRequest.broadcastNostrEventRequest.relayURL,
|
|
||||||
write = true,
|
|
||||||
read = true
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
).timeout(PUBLISH_TIMEOUT.milliseconds).catch {
|
).timeout(PUBLISH_TIMEOUT.milliseconds).catch {
|
||||||
// Timeout...
|
// Timeout...
|
||||||
|
|||||||
Reference in new issue
Block a user