perf: Improved performance by optimizing API calls to only refresh when the tick prompts a refresh. All UI is now significantly faster
This commit is contained in:
@@ -154,7 +154,6 @@ impl<'a> App<'a> {
|
|||||||
self.cancellation_token.cancel();
|
self.cancellation_token.cancel();
|
||||||
} else {
|
} else {
|
||||||
self.dispatch_by_radarr_block(&active_radarr_block).await;
|
self.dispatch_by_radarr_block(&active_radarr_block).await;
|
||||||
self.refresh_radarr_metadata().await;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -563,22 +563,6 @@ mod tests {
|
|||||||
|
|
||||||
app.radarr_on_tick(ActiveRadarrBlock::Downloads).await;
|
app.radarr_on_tick(ActiveRadarrBlock::Downloads).await;
|
||||||
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
RadarrEvent::GetDownloads.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
RadarrEvent::GetQualityProfiles.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
RadarrEvent::GetTags.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
RadarrEvent::GetRootFolders.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
sync_network_rx.recv().await.unwrap(),
|
sync_network_rx.recv().await.unwrap(),
|
||||||
RadarrEvent::GetDownloads.into()
|
RadarrEvent::GetDownloads.into()
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ impl<'a> App<'a> {
|
|||||||
self
|
self
|
||||||
.dispatch_network_event(SonarrEvent::ListSeries.into())
|
.dispatch_network_event(SonarrEvent::ListSeries.into())
|
||||||
.await;
|
.await;
|
||||||
self
|
|
||||||
.dispatch_network_event(SonarrEvent::GetDownloads.into())
|
|
||||||
.await;
|
|
||||||
}
|
}
|
||||||
ActiveSonarrBlock::SeriesDetails => {
|
ActiveSonarrBlock::SeriesDetails => {
|
||||||
self.is_loading = true;
|
self.is_loading = true;
|
||||||
@@ -63,6 +60,9 @@ impl<'a> App<'a> {
|
|||||||
.await;
|
.await;
|
||||||
}
|
}
|
||||||
ActiveSonarrBlock::Blocklist => {
|
ActiveSonarrBlock::Blocklist => {
|
||||||
|
self
|
||||||
|
.dispatch_network_event(SonarrEvent::ListSeries.into())
|
||||||
|
.await;
|
||||||
self
|
self
|
||||||
.dispatch_network_event(SonarrEvent::GetBlocklist.into())
|
.dispatch_network_event(SonarrEvent::GetBlocklist.into())
|
||||||
.await;
|
.await;
|
||||||
@@ -156,7 +156,6 @@ impl<'a> App<'a> {
|
|||||||
self.cancellation_token.cancel();
|
self.cancellation_token.cancel();
|
||||||
} else {
|
} else {
|
||||||
self.dispatch_by_sonarr_block(&active_sonarr_block).await;
|
self.dispatch_by_sonarr_block(&active_sonarr_block).await;
|
||||||
self.refresh_sonarr_metadata().await;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,10 @@ mod tests {
|
|||||||
.await;
|
.await;
|
||||||
|
|
||||||
assert!(app.is_loading);
|
assert!(app.is_loading);
|
||||||
|
assert_eq!(
|
||||||
|
sync_network_rx.recv().await.unwrap(),
|
||||||
|
SonarrEvent::ListSeries.into()
|
||||||
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
sync_network_rx.recv().await.unwrap(),
|
sync_network_rx.recv().await.unwrap(),
|
||||||
SonarrEvent::GetBlocklist.into()
|
SonarrEvent::GetBlocklist.into()
|
||||||
@@ -232,10 +236,6 @@ mod tests {
|
|||||||
sync_network_rx.recv().await.unwrap(),
|
sync_network_rx.recv().await.unwrap(),
|
||||||
SonarrEvent::ListSeries.into()
|
SonarrEvent::ListSeries.into()
|
||||||
);
|
);
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
SonarrEvent::GetDownloads.into()
|
|
||||||
);
|
|
||||||
assert!(!app.data.sonarr_data.prompt_confirm);
|
assert!(!app.data.sonarr_data.prompt_confirm);
|
||||||
assert_eq!(app.tick_count, 0);
|
assert_eq!(app.tick_count, 0);
|
||||||
}
|
}
|
||||||
@@ -478,26 +478,6 @@ mod tests {
|
|||||||
|
|
||||||
app.sonarr_on_tick(ActiveSonarrBlock::Downloads).await;
|
app.sonarr_on_tick(ActiveSonarrBlock::Downloads).await;
|
||||||
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
SonarrEvent::GetDownloads.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
SonarrEvent::GetQualityProfiles.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
SonarrEvent::GetLanguageProfiles.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
SonarrEvent::GetTags.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
sync_network_rx.recv().await.unwrap(),
|
|
||||||
SonarrEvent::GetRootFolders.into()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
sync_network_rx.recv().await.unwrap(),
|
sync_network_rx.recv().await.unwrap(),
|
||||||
SonarrEvent::GetDownloads.into()
|
SonarrEvent::GetDownloads.into()
|
||||||
|
|||||||
Reference in New Issue
Block a user