- When All Follows, the live tab will load any event with a follow in the participant list.
- Removes prefix filters
This commit is contained in:
@@ -18,53 +18,66 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") {
|
|||||||
|
|
||||||
val latestEOSEs = EOSEAccount()
|
val latestEOSEs = EOSEAccount()
|
||||||
|
|
||||||
fun createLiveStreamFilter(): TypedFilter {
|
fun createLiveStreamFilter(): List<TypedFilter> {
|
||||||
val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList)
|
val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList)?.toList()
|
||||||
|
|
||||||
val followKeys = follows?.map {
|
return listOfNotNull(
|
||||||
it.substring(0, 8)
|
TypedFilter(
|
||||||
}
|
types = setOf(FeedType.GLOBAL),
|
||||||
|
filter = JsonFilter(
|
||||||
return TypedFilter(
|
authors = follows,
|
||||||
types = setOf(FeedType.GLOBAL),
|
kinds = listOf(LiveActivitiesChatMessageEvent.kind, LiveActivitiesEvent.kind),
|
||||||
filter = JsonFilter(
|
limit = 300,
|
||||||
authors = followKeys,
|
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
||||||
kinds = listOf(LiveActivitiesChatMessageEvent.kind, LiveActivitiesEvent.kind),
|
)
|
||||||
limit = 300,
|
),
|
||||||
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
follows?.let {
|
||||||
)
|
TypedFilter(
|
||||||
|
types = setOf(FeedType.GLOBAL),
|
||||||
|
filter = JsonFilter(
|
||||||
|
tags = mapOf("p" to it),
|
||||||
|
kinds = listOf(LiveActivitiesEvent.kind),
|
||||||
|
limit = 100,
|
||||||
|
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createPublicChatFilter(): TypedFilter {
|
fun createPublicChatFilter(): List<TypedFilter> {
|
||||||
val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList)
|
val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList)?.toList()
|
||||||
|
val followChats = account.selectedChatsFollowList().toList()
|
||||||
|
|
||||||
val followKeys = follows?.map {
|
return listOf(
|
||||||
it.substring(0, 8)
|
TypedFilter(
|
||||||
}
|
types = setOf(FeedType.PUBLIC_CHATS),
|
||||||
|
filter = JsonFilter(
|
||||||
return TypedFilter(
|
authors = follows,
|
||||||
types = setOf(FeedType.PUBLIC_CHATS),
|
kinds = listOf(ChannelCreateEvent.kind, ChannelMetadataEvent.kind, ChannelMessageEvent.kind),
|
||||||
filter = JsonFilter(
|
limit = 300,
|
||||||
authors = followKeys,
|
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
||||||
kinds = listOf(ChannelCreateEvent.kind, ChannelMetadataEvent.kind, ChannelMessageEvent.kind),
|
)
|
||||||
limit = 300,
|
),
|
||||||
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
TypedFilter(
|
||||||
|
types = setOf(FeedType.PUBLIC_CHATS),
|
||||||
|
filter = JsonFilter(
|
||||||
|
ids = followChats,
|
||||||
|
kinds = listOf(ChannelCreateEvent.kind),
|
||||||
|
limit = 300,
|
||||||
|
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createCommunitiesFilter(): TypedFilter {
|
fun createCommunitiesFilter(): TypedFilter {
|
||||||
val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList)
|
val follows = account.selectedUsersFollowList(account.defaultDiscoveryFollowList)?.toList()
|
||||||
|
|
||||||
val followKeys = follows?.map {
|
|
||||||
it.substring(0, 8)
|
|
||||||
}
|
|
||||||
|
|
||||||
return TypedFilter(
|
return TypedFilter(
|
||||||
types = setOf(FeedType.GLOBAL),
|
types = setOf(FeedType.GLOBAL),
|
||||||
filter = JsonFilter(
|
filter = JsonFilter(
|
||||||
authors = followKeys,
|
authors = follows,
|
||||||
kinds = listOf(CommunityDefinitionEvent.kind, CommunityPostApprovalEvent.kind),
|
kinds = listOf(CommunityDefinitionEvent.kind, CommunityPostApprovalEvent.kind),
|
||||||
limit = 300,
|
limit = 300,
|
||||||
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultDiscoveryFollowList)?.relayList
|
||||||
@@ -197,16 +210,16 @@ object NostrDiscoveryDataSource : NostrDataSource("DiscoveryFeed") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun updateChannelFilters() {
|
override fun updateChannelFilters() {
|
||||||
discoveryFeedChannel.typedFilters = listOfNotNull(
|
discoveryFeedChannel.typedFilters = createLiveStreamFilter().plus(createPublicChatFilter()).plus(
|
||||||
createLiveStreamFilter(),
|
listOfNotNull(
|
||||||
createPublicChatFilter(),
|
createLiveStreamTagsFilter(),
|
||||||
createCommunitiesFilter(),
|
createLiveStreamGeohashesFilter(),
|
||||||
createLiveStreamTagsFilter(),
|
createCommunitiesFilter(),
|
||||||
createPublicChatsTagsFilter(),
|
createPublicChatsTagsFilter(),
|
||||||
createCommunitiesTagsFilter(),
|
createCommunitiesTagsFilter(),
|
||||||
createCommunitiesGeohashesFilter(),
|
createCommunitiesGeohashesFilter(),
|
||||||
createPublicChatsGeohashesFilter(),
|
createPublicChatsGeohashesFilter()
|
||||||
createLiveStreamGeohashesFilter()
|
)
|
||||||
).ifEmpty { null }
|
).ifEmpty { null }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,13 +54,8 @@ object NostrHomeDataSource : NostrDataSource("HomeFeed") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun createFollowAccountsFilter(): TypedFilter {
|
fun createFollowAccountsFilter(): TypedFilter {
|
||||||
val follows = account.selectedUsersFollowList(account.defaultHomeFollowList)
|
val follows = account.selectedUsersFollowList(account.defaultHomeFollowList) ?: emptySet()
|
||||||
|
val followSet = follows.plus(account.userProfile().pubkeyHex).toList()
|
||||||
val followKeys = follows?.map {
|
|
||||||
it.substring(0, 8)
|
|
||||||
}
|
|
||||||
|
|
||||||
val followSet = followKeys?.plus(account.userProfile().pubkeyHex.substring(0, 8))
|
|
||||||
|
|
||||||
return TypedFilter(
|
return TypedFilter(
|
||||||
types = setOf(FeedType.FOLLOWS),
|
types = setOf(FeedType.FOLLOWS),
|
||||||
|
|||||||
@@ -14,16 +14,12 @@ object NostrVideoDataSource : NostrDataSource("VideoFeed") {
|
|||||||
val latestEOSEs = EOSEAccount()
|
val latestEOSEs = EOSEAccount()
|
||||||
|
|
||||||
fun createContextualFilter(): TypedFilter? {
|
fun createContextualFilter(): TypedFilter? {
|
||||||
val follows = account.selectedUsersFollowList(account.defaultStoriesFollowList)
|
val follows = account.selectedUsersFollowList(account.defaultStoriesFollowList)?.toList()
|
||||||
|
|
||||||
val followKeys = follows?.map {
|
|
||||||
it.substring(0, 6)
|
|
||||||
}
|
|
||||||
|
|
||||||
return TypedFilter(
|
return TypedFilter(
|
||||||
types = setOf(FeedType.GLOBAL),
|
types = setOf(FeedType.GLOBAL),
|
||||||
filter = JsonFilter(
|
filter = JsonFilter(
|
||||||
authors = followKeys,
|
authors = follows,
|
||||||
kinds = listOf(FileHeaderEvent.kind, FileStorageHeaderEvent.kind),
|
kinds = listOf(FileHeaderEvent.kind, FileStorageHeaderEvent.kind),
|
||||||
limit = 200,
|
limit = 200,
|
||||||
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultStoriesFollowList)?.relayList
|
since = latestEOSEs.users[account.userProfile()]?.followList?.get(account.defaultStoriesFollowList)?.relayList
|
||||||
|
|||||||
Reference in New Issue
Block a user