refactor(api): extract attention merge helpers
This commit is contained in:
@@ -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(),
|
||||
|
||||
Reference in New Issue
Block a user