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(",") .joinToString(",")
}.values }.values
.map { .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>> = fun groupByEOSEPresence(users: Iterable<User>): Collection<List<User>> =
@ -331,7 +331,7 @@ fun groupByEOSEPresence(users: Iterable<User>): Collection<List<User>> =
.joinToString(",") .joinToString(",")
}.values }.values
.map { .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> { fun findMinimumEOSEs(notes: List<Note>): Map<String, EOSETime> {

View File

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