refactor(api): extract attention merge helpers

This commit is contained in:
Miguel Palhas
2026-08-23 19:48:59 +01:00
parent e4c115803b
commit 9129728622
+62 -33
View File
@@ -741,13 +741,11 @@ async fn tv_attention(
&mut tv_no_pt_source,
row.series_id,
row.tmdb_id,
row.title,
&row.title,
row.year,
QueuedEpisode {
id: row.episode_id,
season_number: row.season_number,
episode_number: row.episode_number,
},
row.episode_id,
row.season_number,
row.episode_number,
);
}
@@ -757,49 +755,80 @@ async fn tv_attention(
&mut tv_needs_decision,
row.series_id,
row.tmdb_id,
row.title,
&row.title,
row.year,
QueuedEpisode {
id: row.episode_id,
season_number: row.season_number,
episode_number: row.episode_number,
},
row.episode_id,
row.season_number,
row.episode_number,
);
}
for row in season_pack_fails {
let season = QueuedSeason {
id: row.season_id,
number: row.season_number,
};
match tv_needs_decision
.iter_mut()
.find(|entry| entry.series_id == row.series_id)
{
Some(entry) => entry.seasons.push(season),
None => tv_needs_decision.push(SeriesAttention {
series_id: row.series_id,
tmdb_id: row.tmdb_id,
title: row.title,
year: row.year,
episodes: Vec::new(),
seasons: vec![season],
}),
}
merge_season(
&mut tv_needs_decision,
row.series_id,
row.tmdb_id,
&row.title,
row.year,
row.season_id,
row.season_number,
);
}
Ok((tv_no_pt_source, tv_needs_decision))
}
/// One more qualifying season for its series, creating the series' entry on
/// first sight.
#[allow(clippy::too_many_arguments)]
fn merge_season(
entries: &mut Vec<SeriesAttention>,
series_id: i64,
tmdb_id: i64,
title: &str,
year: Option<i64>,
season_id: i64,
season_number: i64,
) {
match entries
.iter_mut()
.find(|entry| entry.series_id == series_id)
{
Some(entry) => entry.seasons.push(QueuedSeason {
id: season_id,
number: season_number,
}),
None => entries.push(SeriesAttention {
series_id,
tmdb_id,
title: title.to_owned(),
year,
episodes: Vec::new(),
seasons: vec![QueuedSeason {
id: season_id,
number: season_number,
}],
}),
}
}
/// One more qualifying episode for its series, creating the series' entry on
/// first sight.
#[allow(clippy::too_many_arguments)]
fn merge_episode(
entries: &mut Vec<SeriesAttention>,
series_id: i64,
tmdb_id: i64,
title: String,
title: &str,
year: Option<i64>,
episode: QueuedEpisode,
episode_id: i64,
season_number: i64,
episode_number: i64,
) {
let episode = QueuedEpisode {
id: episode_id,
season_number,
episode_number,
};
if let Some(entry) = entries
.iter_mut()
.find(|entry| entry.series_id == series_id)
@@ -810,7 +839,7 @@ fn merge_episode(
entries.push(SeriesAttention {
series_id,
tmdb_id,
title,
title: title.to_owned(),
year,
episodes: vec![episode],
seasons: Vec::new(),