mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-03-29 19:21:52 +01:00
Checks cache before making a new request to DVM
This commit is contained in:
parent
a9437d9001
commit
f73052ed48
@ -48,6 +48,7 @@ import com.vitorpamplona.amethyst.model.Note
|
||||
import com.vitorpamplona.amethyst.model.UrlCachedPreviewer
|
||||
import com.vitorpamplona.amethyst.model.User
|
||||
import com.vitorpamplona.amethyst.model.UserState
|
||||
import com.vitorpamplona.amethyst.model.observables.CreatedAtComparator
|
||||
import com.vitorpamplona.amethyst.model.observables.LatestByKindWithETag
|
||||
import com.vitorpamplona.amethyst.service.CashuProcessor
|
||||
import com.vitorpamplona.amethyst.service.CashuToken
|
||||
@ -81,6 +82,7 @@ import com.vitorpamplona.quartz.events.EventInterface
|
||||
import com.vitorpamplona.quartz.events.GiftWrapEvent
|
||||
import com.vitorpamplona.quartz.events.LnZapEvent
|
||||
import com.vitorpamplona.quartz.events.LnZapRequestEvent
|
||||
import com.vitorpamplona.quartz.events.NIP90ContentDiscoveryRequestEvent
|
||||
import com.vitorpamplona.quartz.events.Participant
|
||||
import com.vitorpamplona.quartz.events.ReportEvent
|
||||
import com.vitorpamplona.quartz.events.Response
|
||||
@ -1354,6 +1356,19 @@ class AccountViewModel(val account: Account, val settings: SettingsState) : View
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun cachedDVMContentDiscovery(pubkeyHex: String): Note? {
|
||||
val fifteenMinsAgo = TimeUtils.fifteenMinutesAgo()
|
||||
return LocalCache.notes.maxOrNullOf(
|
||||
filter = { key, note ->
|
||||
val noteEvent = note.event
|
||||
noteEvent is NIP90ContentDiscoveryRequestEvent &&
|
||||
noteEvent.isTaggedUser(pubkeyHex) &&
|
||||
noteEvent.createdAt > fifteenMinsAgo
|
||||
},
|
||||
comparator = CreatedAtComparator,
|
||||
)
|
||||
}
|
||||
|
||||
fun sendZapPaymentRequestFor(
|
||||
bolt11: String,
|
||||
zappedNote: Note?,
|
||||
|
@ -142,7 +142,12 @@ fun NIP90ContentDiscoveryScreen(
|
||||
}
|
||||
|
||||
LaunchedEffect(key1 = appDefinition) {
|
||||
onRefresh()
|
||||
val existingResult = accountViewModel.cachedDVMContentDiscovery(noteAuthor.pubkeyHex)
|
||||
if (existingResult == null) {
|
||||
onRefresh()
|
||||
} else {
|
||||
requestEventID = existingResult
|
||||
}
|
||||
}
|
||||
|
||||
RefresheableBox(
|
||||
|
Loading…
x
Reference in New Issue
Block a user