Checks cache before making a new request to DVM
This commit is contained in:
@@ -48,6 +48,7 @@ import com.vitorpamplona.amethyst.model.Note
|
|||||||
import com.vitorpamplona.amethyst.model.UrlCachedPreviewer
|
import com.vitorpamplona.amethyst.model.UrlCachedPreviewer
|
||||||
import com.vitorpamplona.amethyst.model.User
|
import com.vitorpamplona.amethyst.model.User
|
||||||
import com.vitorpamplona.amethyst.model.UserState
|
import com.vitorpamplona.amethyst.model.UserState
|
||||||
|
import com.vitorpamplona.amethyst.model.observables.CreatedAtComparator
|
||||||
import com.vitorpamplona.amethyst.model.observables.LatestByKindWithETag
|
import com.vitorpamplona.amethyst.model.observables.LatestByKindWithETag
|
||||||
import com.vitorpamplona.amethyst.service.CashuProcessor
|
import com.vitorpamplona.amethyst.service.CashuProcessor
|
||||||
import com.vitorpamplona.amethyst.service.CashuToken
|
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.GiftWrapEvent
|
||||||
import com.vitorpamplona.quartz.events.LnZapEvent
|
import com.vitorpamplona.quartz.events.LnZapEvent
|
||||||
import com.vitorpamplona.quartz.events.LnZapRequestEvent
|
import com.vitorpamplona.quartz.events.LnZapRequestEvent
|
||||||
|
import com.vitorpamplona.quartz.events.NIP90ContentDiscoveryRequestEvent
|
||||||
import com.vitorpamplona.quartz.events.Participant
|
import com.vitorpamplona.quartz.events.Participant
|
||||||
import com.vitorpamplona.quartz.events.ReportEvent
|
import com.vitorpamplona.quartz.events.ReportEvent
|
||||||
import com.vitorpamplona.quartz.events.Response
|
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(
|
fun sendZapPaymentRequestFor(
|
||||||
bolt11: String,
|
bolt11: String,
|
||||||
zappedNote: Note?,
|
zappedNote: Note?,
|
||||||
|
|||||||
+6
-1
@@ -142,7 +142,12 @@ fun NIP90ContentDiscoveryScreen(
|
|||||||
}
|
}
|
||||||
|
|
||||||
LaunchedEffect(key1 = appDefinition) {
|
LaunchedEffect(key1 = appDefinition) {
|
||||||
onRefresh()
|
val existingResult = accountViewModel.cachedDVMContentDiscovery(noteAuthor.pubkeyHex)
|
||||||
|
if (existingResult == null) {
|
||||||
|
onRefresh()
|
||||||
|
} else {
|
||||||
|
requestEventID = existingResult
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RefresheableBox(
|
RefresheableBox(
|
||||||
|
|||||||
Reference in New Issue
Block a user