Adds EOSE treatment for the Discovery datasource

This commit is contained in:
Vitor Pamplona
2023-07-06 21:03:36 -04:00
parent b3a369d91b
commit 2f354e4b81
@@ -8,6 +8,7 @@ import com.vitorpamplona.amethyst.service.model.CommunityDefinitionEvent
import com.vitorpamplona.amethyst.service.model.CommunityPostApprovalEvent import com.vitorpamplona.amethyst.service.model.CommunityPostApprovalEvent
import com.vitorpamplona.amethyst.service.model.LiveActivitiesChatMessageEvent import com.vitorpamplona.amethyst.service.model.LiveActivitiesChatMessageEvent
import com.vitorpamplona.amethyst.service.model.LiveActivitiesEvent 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.FeedType
import com.vitorpamplona.amethyst.service.relays.JsonFilter import com.vitorpamplona.amethyst.service.relays.JsonFilter
import com.vitorpamplona.amethyst.service.relays.TypedFilter import com.vitorpamplona.amethyst.service.relays.TypedFilter
@@ -15,6 +16,9 @@ import com.vitorpamplona.amethyst.service.relays.TypedFilter
object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") { object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") {
lateinit var account: Account lateinit var account: Account
val latestEOSEs = EOSEAccount()
val dataSource = "Discovery"
fun createLiveStreamFilter(): TypedFilter { fun createLiveStreamFilter(): TypedFilter {
val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList) val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList)
@@ -27,7 +31,8 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") {
filter = JsonFilter( filter = JsonFilter(
authors = followKeys, authors = followKeys,
kinds = listOf(LiveActivitiesChatMessageEvent.kind, LiveActivitiesEvent.kind), 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( return TypedFilter(
types = setOf(FeedType.GLOBAL), types = setOf(FeedType.PUBLIC_CHATS),
filter = JsonFilter( filter = JsonFilter(
authors = followKeys, authors = followKeys,
kinds = listOf(ChannelCreateEvent.kind, ChannelMetadataEvent.kind, ChannelMessageEvent.kind), 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( filter = JsonFilter(
authors = followKeys, authors = followKeys,
kinds = listOf(CommunityDefinitionEvent.kind, CommunityPostApprovalEvent.kind), 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()) listOf(it, it.lowercase(), it.uppercase(), it.capitalize())
}.flatten() }.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 if (hashToLoad.isNullOrEmpty()) return null
return TypedFilter( return TypedFilter(
types = setOf(FeedType.GLOBAL), types = setOf(FeedType.PUBLIC_CHATS),
filter = JsonFilter( filter = JsonFilter(
kinds = listOf(ChannelCreateEvent.kind, ChannelMetadataEvent.kind, ChannelMessageEvent.kind), kinds = listOf(ChannelCreateEvent.kind, ChannelMetadataEvent.kind, ChannelMessageEvent.kind),
tags = mapOf( tags = mapOf(
@@ -99,7 +107,8 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") {
listOf(it, it.lowercase(), it.uppercase(), it.capitalize()) listOf(it, it.lowercase(), it.uppercase(), it.capitalize())
}.flatten() }.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()) listOf(it, it.lowercase(), it.uppercase(), it.capitalize())
}.flatten() }.flatten()
), ),
limit = 500 limit = 300,
since = latestEOSEs.users[account.userProfile()]?.followList?.get(dataSource)?.relayList
) )
) )
} }