From 2f354e4b8198eba2ba131389625ed5d3d19f6d77 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Thu, 6 Jul 2023 21:03:36 -0400 Subject: [PATCH] Adds EOSE treatment for the Discovery datasource --- .../service/NostrDiscoveryDataSource.kt | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDiscoveryDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDiscoveryDataSource.kt index d502bc832..17741ee60 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDiscoveryDataSource.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDiscoveryDataSource.kt @@ -8,6 +8,7 @@ import com.vitorpamplona.amethyst.service.model.CommunityDefinitionEvent import com.vitorpamplona.amethyst.service.model.CommunityPostApprovalEvent import com.vitorpamplona.amethyst.service.model.LiveActivitiesChatMessageEvent import com.vitorpamplona.amethyst.service.model.LiveActivitiesEvent +import com.vitorpamplona.amethyst.service.relays.EOSEAccount import com.vitorpamplona.amethyst.service.relays.FeedType import com.vitorpamplona.amethyst.service.relays.JsonFilter import com.vitorpamplona.amethyst.service.relays.TypedFilter @@ -15,6 +16,9 @@ import com.vitorpamplona.amethyst.service.relays.TypedFilter object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { lateinit var account: Account + val latestEOSEs = EOSEAccount() + val dataSource = "Discovery" + fun createLiveStreamFilter(): TypedFilter { val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList) @@ -27,7 +31,8 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { filter = JsonFilter( authors = followKeys, kinds = listOf(LiveActivitiesChatMessageEvent.kind, LiveActivitiesEvent.kind), - limit = 500 + limit = 300, + since = latestEOSEs.users[account.userProfile()]?.followList?.get(dataSource)?.relayList ) ) } @@ -40,11 +45,12 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { } return TypedFilter( - types = setOf(FeedType.GLOBAL), + types = setOf(FeedType.PUBLIC_CHATS), filter = JsonFilter( authors = followKeys, kinds = listOf(ChannelCreateEvent.kind, ChannelMetadataEvent.kind, ChannelMessageEvent.kind), - limit = 500 + limit = 300, + since = latestEOSEs.users[account.userProfile()]?.followList?.get(dataSource)?.relayList ) ) } @@ -61,7 +67,8 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { filter = JsonFilter( authors = followKeys, kinds = listOf(CommunityDefinitionEvent.kind, CommunityPostApprovalEvent.kind), - limit = 500 + limit = 300, + since = latestEOSEs.users[account.userProfile()]?.followList?.get(dataSource)?.relayList ) ) } @@ -80,7 +87,8 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { listOf(it, it.lowercase(), it.uppercase(), it.capitalize()) }.flatten() ), - limit = 500 + limit = 300, + since = latestEOSEs.users[account.userProfile()]?.followList?.get(dataSource)?.relayList ) ) } @@ -91,7 +99,7 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { if (hashToLoad.isNullOrEmpty()) return null return TypedFilter( - types = setOf(FeedType.GLOBAL), + types = setOf(FeedType.PUBLIC_CHATS), filter = JsonFilter( kinds = listOf(ChannelCreateEvent.kind, ChannelMetadataEvent.kind, ChannelMessageEvent.kind), tags = mapOf( @@ -99,7 +107,8 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { listOf(it, it.lowercase(), it.uppercase(), it.capitalize()) }.flatten() ), - limit = 500 + limit = 300, + since = latestEOSEs.users[account.userProfile()]?.followList?.get(dataSource)?.relayList ) ) } @@ -118,7 +127,8 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { listOf(it, it.lowercase(), it.uppercase(), it.capitalize()) }.flatten() ), - limit = 500 + limit = 300, + since = latestEOSEs.users[account.userProfile()]?.followList?.get(dataSource)?.relayList ) ) }