diff --git a/labs/multiverse/src/main.rs b/labs/multiverse/src/main.rs index c614a4348..9d6969eef 100644 --- a/labs/multiverse/src/main.rs +++ b/labs/multiverse/src/main.rs @@ -744,7 +744,6 @@ impl App { }) { let results = get_events_from_event_ids( - &self.client, &room, results, ) @@ -960,30 +959,16 @@ async fn login_with_password(client: &Client) -> Result<()> { } async fn get_events_from_event_ids( - client: &Client, room: &Room, event_ids: Vec, ) -> Vec { - let Ok(cache_lock) = client.event_cache_store().lock().await else { - debug!("Couldnt get event cache store lock."); - return Vec::new(); - }; - - let cache_lock = - cache_lock.as_clean().expect("Only one process must access the event cache store"); - - futures_util::future::join_all(event_ids.iter().map(|event_id| async { - let event_id = event_id.clone(); - match cache_lock.find_event(room.room_id(), &event_id).await { - Ok(ev) => ev, - Err(_) => room - .event(&event_id, None) - .await - .inspect_err(|err| { - debug!("Failed to find event {event_id} in event cache and server: {err}"); - }) - .ok(), - } + futures_util::future::join_all(event_ids.iter().map(|event_id| async move { + room.load_or_fetch_event(event_id, None) + .await + .inspect_err(|err| { + debug!("Failed to find event {event_id} in event cache and server: {err}"); + }) + .ok() })) .await .into_iter()