updates the EOSE of users even if no user is found in the relay.

This commit is contained in:
Vitor Pamplona 2024-07-22 14:27:10 -04:00
parent 3c1f57fac0
commit 4def80c914
2 changed files with 8 additions and 9 deletions

View File

@ -320,7 +320,7 @@ fun groupByEOSEPresence(notes: Set<Note>): Collection<List<Note>> =
.joinToString(",")
}.values
.map {
it.sortedBy { it.idHex }
it.sortedBy { it.idHex } // important to keep in order otherwise the Relay thinks the filter has changed and we REQ again
}
fun groupByEOSEPresence(users: Iterable<User>): Collection<List<User>> =
@ -331,7 +331,7 @@ fun groupByEOSEPresence(users: Iterable<User>): Collection<List<User>> =
.joinToString(",")
}.values
.map {
it.sortedBy { it.pubkeyHex }
it.sortedBy { it.pubkeyHex } // important to keep in order otherwise the Relay thinks the filter has changed and we REQ again
}
fun findMinimumEOSEs(notes: List<Note>): Map<String, EOSETime> {

View File

@ -64,6 +64,7 @@ object NostrSingleUserDataSource : AmethystNostrDataSource("SingleUserFeed") {
.map { group ->
val groupIds = group.map { it.pubkeyHex }
val minEOSEs = findMinimumEOSEsForUsers(group)
listOf(
TypedFilter(
types = EVENT_FINDER_TYPES,
@ -92,13 +93,11 @@ object NostrSingleUserDataSource : AmethystNostrDataSource("SingleUserFeed") {
checkNotInMainThread()
usersToWatch.forEach {
if (it.latestMetadata != null) {
val eose = it.latestEOSEs[relayUrl]
if (eose == null) {
it.latestEOSEs = it.latestEOSEs + Pair(relayUrl, EOSETime(time))
} else {
eose.time = time
}
val eose = it.latestEOSEs[relayUrl]
if (eose == null) {
it.latestEOSEs = it.latestEOSEs + Pair(relayUrl, EOSETime(time))
} else {
eose.time = time
}
}
}