Merge branch 'vitorpamplona:main' into labeled-bookmarks

This commit is contained in:
KotlinGeekDev
2025-11-25 11:35:01 +00:00
committed by GitHub
6 changed files with 29 additions and 15 deletions
@@ -28,13 +28,13 @@ class PoolEventOutboxState(
val event: Event,
var relays: Set<NormalizedRelayUrl>,
) {
private val tries = mutableMapOf<NormalizedRelayUrl, Tries>()
private var tries = mapOf<NormalizedRelayUrl, Tries>()
fun updateRelays(newRelays: Set<NormalizedRelayUrl>) {
relays = newRelays
}
fun isDone(url: NormalizedRelayUrl) = tries[url]?.let { it.isDone() } ?: false
fun isDone(url: NormalizedRelayUrl) = tries[url]?.isDone() ?: false
fun isDone() = relays.all { isDone(it) }
@@ -52,9 +52,9 @@ class PoolEventOutboxState(
fun newTry(url: NormalizedRelayUrl) {
val currentTries = tries[url]
if (currentTries != null) {
currentTries.tries.add(TimeUtils.now())
currentTries.addTriedTime(TimeUtils.now())
} else {
tries.put(url, Tries(mutableListOf(TimeUtils.now())))
tries = tries + (url to Tries(listOf(TimeUtils.now())))
}
}
@@ -65,24 +65,32 @@ class PoolEventOutboxState(
) {
val currentTries = tries[url]
if (currentTries != null) {
currentTries.responses.add(Response(success, message))
currentTries.addResponse(Response(success, message))
} else {
tries.put(
url,
Tries(
mutableListOf(TimeUtils.now() - 1),
mutableListOf(Response(success, message)),
),
tries = tries + (
url to
Tries(
listOf(TimeUtils.now() - 1),
listOf(Response(success, message)),
)
)
}
}
// Tries 3 times
class Tries(
val tries: MutableList<Long> = mutableListOf(),
val responses: MutableList<Response> = mutableListOf(),
var tries: List<Long> = listOf(),
var responses: List<Response> = listOf(),
) {
fun isDone() = responses.any { it.success == true } || responses.size > 2 || tries.size > 3
fun isDone() = responses.any { it.success } || responses.size > 2 || tries.size > 3
fun addResponse(r: Response) {
responses += r
}
fun addTriedTime(tried: Long) {
tries += tried
}
}
class Response(