Only downloads DMs if the account is writeable
This commit is contained in:
+13
-7
@@ -42,14 +42,20 @@ class AccountGiftWrapsEoseManager(
|
||||
override fun updateFilter(
|
||||
key: AccountQueryState,
|
||||
since: SincePerRelayMap?,
|
||||
): List<RelayBasedFilter> =
|
||||
key.account.dmRelays.flow.value.flatMap { relay ->
|
||||
filterGiftWrapsToPubkey(
|
||||
relay = relay,
|
||||
pubkey = user(key).pubkeyHex,
|
||||
since = since?.get(relay)?.time,
|
||||
)
|
||||
): List<RelayBasedFilter> {
|
||||
// Only loads DMs if the account is writeable
|
||||
return if (key.account.isWriteable()) {
|
||||
key.account.dmRelays.flow.value.flatMap { relay ->
|
||||
filterGiftWrapsToPubkey(
|
||||
relay = relay,
|
||||
pubkey = user(key).pubkeyHex,
|
||||
since = since?.get(relay)?.time,
|
||||
)
|
||||
}
|
||||
} else {
|
||||
emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
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.relays.SincePerRelayMap
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.client.INostrClient
|
||||
import com.vitorpamplona.quartz.nip01Core.relay.client.pool.RelayBasedFilter
|
||||
|
||||
class ChatroomFilterSubAssembler(
|
||||
client: INostrClient,
|
||||
@@ -31,7 +32,12 @@ class ChatroomFilterSubAssembler(
|
||||
override fun updateFilter(
|
||||
key: ChatroomQueryState,
|
||||
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()
|
||||
|
||||
|
||||
+10
-6
@@ -40,12 +40,16 @@ class DMsFromUserFilterSubAssembler(
|
||||
key: ChatroomListState,
|
||||
since: SincePerRelayMap?,
|
||||
): List<RelayBasedFilter>? =
|
||||
key.account.homeRelays.flow.value.map {
|
||||
filterNip04DMsFromMe(key.account.userProfile(), it, since?.get(it)?.time)
|
||||
} +
|
||||
key.account.dmRelays.flow.value.map {
|
||||
filterNip04DMsToMe(key.account.userProfile(), it, since?.get(it)?.time)
|
||||
}
|
||||
if (key.account.isWriteable()) {
|
||||
key.account.homeRelays.flow.value.map {
|
||||
filterNip04DMsFromMe(key.account.userProfile(), it, since?.get(it)?.time)
|
||||
} +
|
||||
key.account.dmRelays.flow.value.map {
|
||||
filterNip04DMsToMe(key.account.userProfile(), it, since?.get(it)?.time)
|
||||
}
|
||||
} else {
|
||||
emptyList()
|
||||
}
|
||||
|
||||
override fun user(key: ChatroomListState) = key.account.userProfile()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user