From 4bd172df060157d62e19b85005de714fca75a67c Mon Sep 17 00:00:00 2001 From: bytedream Date: Wed, 24 May 2023 12:55:47 +0200 Subject: [PATCH] Fix japanese episode download if episode isn't available in specified language with archive (#207) --- crunchy-cli-core/src/archive/filter.rs | 29 +++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/crunchy-cli-core/src/archive/filter.rs b/crunchy-cli-core/src/archive/filter.rs index e44ebab..514b540 100644 --- a/crunchy-cli-core/src/archive/filter.rs +++ b/crunchy-cli-core/src/archive/filter.rs @@ -129,7 +129,34 @@ impl Filter for ArchiveFilter { let mut episodes = vec![]; for season in seasons { - episodes.extend(season.episodes().await?) + let season_locale = season + .audio_locales + .get(0) + .cloned() + .unwrap_or(Locale::ja_JP); + let mut eps = season.episodes().await?; + let before_len = eps.len(); + eps.retain(|e| e.audio_locale == season_locale); + if eps.len() != before_len { + if eps.len() == 0 { + if matches!(self.visited, Visited::Series) { + warn!( + "Season {} is not available with {} audio", + season.season_number, season_locale + ) + } + } else { + let last_episode = eps.last().unwrap(); + warn!( + "Season {} is only available with {} audio until episode {} ({})", + season.season_number, + season_locale, + last_episode.episode_number, + last_episode.title + ) + } + } + episodes.extend(eps) } if Format::has_relative_episodes_fmt(&self.archive.output) {