Only downloads DMs if the account is writeable
This commit is contained in:
+7
-1
@@ -42,7 +42,9 @@ class AccountGiftWrapsEoseManager(
|
|||||||
override fun updateFilter(
|
override fun updateFilter(
|
||||||
key: AccountQueryState,
|
key: AccountQueryState,
|
||||||
since: SincePerRelayMap?,
|
since: SincePerRelayMap?,
|
||||||
): List<RelayBasedFilter> =
|
): List<RelayBasedFilter> {
|
||||||
|
// Only loads DMs if the account is writeable
|
||||||
|
return if (key.account.isWriteable()) {
|
||||||
key.account.dmRelays.flow.value.flatMap { relay ->
|
key.account.dmRelays.flow.value.flatMap { relay ->
|
||||||
filterGiftWrapsToPubkey(
|
filterGiftWrapsToPubkey(
|
||||||
relay = relay,
|
relay = relay,
|
||||||
@@ -50,6 +52,10 @@ class AccountGiftWrapsEoseManager(
|
|||||||
since = since?.get(relay)?.time,
|
since = since?.get(relay)?.time,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val userJobMap = mutableMapOf<User, List<Job>>()
|
val userJobMap = mutableMapOf<User, List<Job>>()
|
||||||
|
|
||||||
|
|||||||
+7
-1
@@ -23,6 +23,7 @@ package com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.datasource
|
|||||||
import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.PerUserAndFollowListEoseManager
|
import com.vitorpamplona.amethyst.service.relayClient.eoseManagers.PerUserAndFollowListEoseManager
|
||||||
import com.vitorpamplona.amethyst.service.relays.SincePerRelayMap
|
import com.vitorpamplona.amethyst.service.relays.SincePerRelayMap
|
||||||
import com.vitorpamplona.quartz.nip01Core.relay.client.INostrClient
|
import com.vitorpamplona.quartz.nip01Core.relay.client.INostrClient
|
||||||
|
import com.vitorpamplona.quartz.nip01Core.relay.client.pool.RelayBasedFilter
|
||||||
|
|
||||||
class ChatroomFilterSubAssembler(
|
class ChatroomFilterSubAssembler(
|
||||||
client: INostrClient,
|
client: INostrClient,
|
||||||
@@ -31,7 +32,12 @@ class ChatroomFilterSubAssembler(
|
|||||||
override fun updateFilter(
|
override fun updateFilter(
|
||||||
key: ChatroomQueryState,
|
key: ChatroomQueryState,
|
||||||
since: SincePerRelayMap?,
|
since: SincePerRelayMap?,
|
||||||
) = filterNip04DMs(key.room.users, key.account, since)
|
): List<RelayBasedFilter>? =
|
||||||
|
if (key.account.isWriteable()) {
|
||||||
|
filterNip04DMs(key.room.users, key.account, since)
|
||||||
|
} else {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
override fun user(key: ChatroomQueryState) = key.account.userProfile()
|
override fun user(key: ChatroomQueryState) = key.account.userProfile()
|
||||||
|
|
||||||
|
|||||||
+4
@@ -40,12 +40,16 @@ class DMsFromUserFilterSubAssembler(
|
|||||||
key: ChatroomListState,
|
key: ChatroomListState,
|
||||||
since: SincePerRelayMap?,
|
since: SincePerRelayMap?,
|
||||||
): List<RelayBasedFilter>? =
|
): List<RelayBasedFilter>? =
|
||||||
|
if (key.account.isWriteable()) {
|
||||||
key.account.homeRelays.flow.value.map {
|
key.account.homeRelays.flow.value.map {
|
||||||
filterNip04DMsFromMe(key.account.userProfile(), it, since?.get(it)?.time)
|
filterNip04DMsFromMe(key.account.userProfile(), it, since?.get(it)?.time)
|
||||||
} +
|
} +
|
||||||
key.account.dmRelays.flow.value.map {
|
key.account.dmRelays.flow.value.map {
|
||||||
filterNip04DMsToMe(key.account.userProfile(), it, since?.get(it)?.time)
|
filterNip04DMsToMe(key.account.userProfile(), it, since?.get(it)?.time)
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
override fun user(key: ChatroomListState) = key.account.userProfile()
|
override fun user(key: ChatroomListState) = key.account.userProfile()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user