refactor: split long functions in tv attention work

This commit is contained in:
Miguel Palhas
2026-08-23 16:51:29 +01:00
parent e8cea4aec5
commit 8ec1506098
2 changed files with 67 additions and 54 deletions
+16 -9
View File
@@ -170,9 +170,7 @@ impl AttentionAction {
.fetch_all(database.pool())
.await?;
for row in tv_no_pt_source {
tv.entry(row.series_id)
.or_insert_with(|| (row.title, row.year, TvEntry::default()))
.2
tv_entry(&mut tv, row.series_id, row.title, row.year)
.no_pt_source
.push(row.episode_id);
}
@@ -193,9 +191,7 @@ impl AttentionAction {
.fetch_all(database.pool())
.await?;
for row in episode_hard_fails {
tv.entry(row.series_id)
.or_insert_with(|| (row.title, row.year, TvEntry::default()))
.2
tv_entry(&mut tv, row.series_id, row.title, row.year)
.hard_failed_episodes
.push(row.episode_id);
}
@@ -214,9 +210,7 @@ impl AttentionAction {
.fetch_all(database.pool())
.await?;
for row in season_pack_fails {
tv.entry(row.series_id)
.or_insert_with(|| (row.title, row.year, TvEntry::default()))
.2
tv_entry(&mut tv, row.series_id, row.title, row.year)
.failed_season_packs
.push(row.season_id);
}
@@ -267,6 +261,19 @@ fn title_with_year(title: &str, year: Option<i64>) -> String {
}
}
/// The series' roll-up entry, created empty on first sight.
fn tv_entry<'a>(
tv: &'a mut HashMap<i64, (String, Option<i64>, TvEntry)>,
series_id: i64,
title: String,
year: Option<i64>,
) -> &'a mut TvEntry {
&mut tv
.entry(series_id)
.or_insert_with(|| (title, year, TvEntry::default()))
.2
}
impl Action for AttentionAction {
fn name(&self) -> &'static str {
"attention"