add nip89 filter
This commit is contained in:
@@ -26,6 +26,7 @@ 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
|
||||||
|
import com.vitorpamplona.quartz.events.AppDefinitionEvent
|
||||||
import com.vitorpamplona.quartz.events.ChannelCreateEvent
|
import com.vitorpamplona.quartz.events.ChannelCreateEvent
|
||||||
import com.vitorpamplona.quartz.events.ChannelMessageEvent
|
import com.vitorpamplona.quartz.events.ChannelMessageEvent
|
||||||
import com.vitorpamplona.quartz.events.ChannelMetadataEvent
|
import com.vitorpamplona.quartz.events.ChannelMetadataEvent
|
||||||
@@ -131,6 +132,25 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun createNIP89Filter(kTags: List<String>): List<TypedFilter> {
|
||||||
|
return listOfNotNull(
|
||||||
|
TypedFilter(
|
||||||
|
types = setOf(FeedType.GLOBAL),
|
||||||
|
filter =
|
||||||
|
JsonFilter(
|
||||||
|
kinds = listOf(AppDefinitionEvent.KIND),
|
||||||
|
limit = 300,
|
||||||
|
tags = mapOf("k" to kTags),
|
||||||
|
since =
|
||||||
|
latestEOSEs.users[account.userProfile()]
|
||||||
|
?.followList
|
||||||
|
?.get(account.defaultDiscoveryFollowList.value)
|
||||||
|
?.relayList,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
fun createLiveStreamFilter(): List<TypedFilter> {
|
fun createLiveStreamFilter(): List<TypedFilter> {
|
||||||
val follows = account.liveDiscoveryFollowLists.value?.users?.toList()
|
val follows = account.liveDiscoveryFollowLists.value?.users?.toList()
|
||||||
|
|
||||||
@@ -404,6 +424,7 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") {
|
|||||||
override fun updateChannelFilters() {
|
override fun updateChannelFilters() {
|
||||||
discoveryFeedChannel.typedFilters =
|
discoveryFeedChannel.typedFilters =
|
||||||
createLiveStreamFilter()
|
createLiveStreamFilter()
|
||||||
|
.plus(createNIP89Filter(listOf("5300")))
|
||||||
.plus(createPublicChatFilter())
|
.plus(createPublicChatFilter())
|
||||||
.plus(createMarketplaceFilter())
|
.plus(createMarketplaceFilter())
|
||||||
.plus(
|
.plus(
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ open class DiscoverNIP89FeedFilter(
|
|||||||
val params = buildFilterParams(account)
|
val params = buildFilterParams(account)
|
||||||
|
|
||||||
val notes =
|
val notes =
|
||||||
LocalCache.notes.filterIntoSet { _, it ->
|
LocalCache.addressables.filterIntoSet { _, it ->
|
||||||
val noteEvent = it.event
|
val noteEvent = it.event
|
||||||
noteEvent is AppDefinitionEvent // && params.match(noteEvent)
|
noteEvent is AppDefinitionEvent // && params.match(noteEvent)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user