From 9acad8b3f5aaa50d20a30fb641702097de50fc9f Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 20 Nov 2023 18:58:25 -0500 Subject: [PATCH] Narrowing the redownloads of reactions down. --- .../vitorpamplona/amethyst/service/NostrDataSource.kt | 2 +- .../amethyst/service/NostrSingleEventDataSource.kt | 9 +++++++++ .../com/vitorpamplona/amethyst/service/OnlineCheck.kt | 2 ++ .../com/vitorpamplona/amethyst/service/relays/Relay.kt | 4 ++-- .../java/com/vitorpamplona/quartz/utils/TimeUtils.kt | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt index c853ba6be..cf21e8f00 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt @@ -61,7 +61,7 @@ abstract class NostrDataSource(val debugName: String) { if (type == Relay.StateType.EOSE && subscriptionId != null && subscriptionId in subscriptions.keys) { // updates a per subscripton since date subscriptions[subscriptionId]?.updateEOSE( - TimeUtils.fiveMinutesAgo(), // in case people's clock is slighly off. + TimeUtils.oneMinuteAgo(), // in case people's clock is slighly off. relay.url ) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt index 75f9367d2..545af39de 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrSingleEventDataSource.kt @@ -156,6 +156,15 @@ object NostrSingleEventDataSource : NostrDataSource("SingleEventFeed") { } } + addressesToWatch.forEach { + val eose = it.lastReactionsDownloadTime[relayUrl] + if (eose == null) { + it.lastReactionsDownloadTime = it.lastReactionsDownloadTime + Pair(relayUrl, EOSETime(time)) + } else { + eose.time = time + } + } + // Many relays operate with limits in the amount of filters. // As information comes, the filters will be rotated to get more data. invalidateFilters() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt index 1b1434644..87ff1bdbe 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/OnlineCheck.kt @@ -29,6 +29,8 @@ object OnlineChecker { return checkOnlineCache.get(url).online } + Log.d("OnlineChecker", "isOnline $url") + return try { val request = Request.Builder() .header("User-Agent", "Amethyst/${BuildConfig.VERSION_NAME}") diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt index fd63c7a17..7379682e6 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/relays/Relay.kt @@ -207,7 +207,7 @@ class Relay( "EVENT" -> { val event = Event.fromJson(msgArray.get(2)) - // Log.w("Relay", "Relay onEVENT $url, $channel") + Log.w("Relay", "Relay onEVENT $url, $channel ${msgArray.get(2)}") listeners.forEach { it.onEvent(this@Relay, channel, event) if (afterEOSE) { @@ -276,7 +276,7 @@ class Relay( if (filters.isNotEmpty()) { val request = """["REQ","$requestId",${filters.take(10).joinToString(",") { it.filter.toJson(url) }}]""" - // println("FILTERSSENT $url $request") + Log.d("Relay", "onFilterSent $url $requestId $request") socket?.send(request) eventUploadCounterInBytes += request.bytesUsedInMemory() afterEOSE = false diff --git a/quartz/src/main/java/com/vitorpamplona/quartz/utils/TimeUtils.kt b/quartz/src/main/java/com/vitorpamplona/quartz/utils/TimeUtils.kt index e88af3ad4..f98c67f76 100644 --- a/quartz/src/main/java/com/vitorpamplona/quartz/utils/TimeUtils.kt +++ b/quartz/src/main/java/com/vitorpamplona/quartz/utils/TimeUtils.kt @@ -11,6 +11,7 @@ object TimeUtils { const val oneWeek = 7 * oneDay fun now() = System.currentTimeMillis() / 1000 + fun oneMinuteAgo() = now() - oneMinute fun fiveMinutesAgo() = now() - fiveMinutes fun oneHourAgo() = now() - oneHour fun oneHourAhead() = now() + oneHour