diff --git a/src/models/meta_details.rs b/src/models/meta_details.rs index 9ce2f6953..11de99f4e 100644 --- a/src/models/meta_details.rs +++ b/src/models/meta_details.rs @@ -1,6 +1,5 @@ use std::{borrow::Cow, marker::PhantomData}; -use itertools::Itertools; use serde::{Deserialize, Serialize}; use stremio_watched_bitfield::WatchedBitField; @@ -144,18 +143,7 @@ impl UpdateWithCtx for MetaDetails { .find(|meta_item| matches!(&meta_item.content, Some(Loadable::Ready(_)))) .and_then(|meta_item| meta_item.content.as_ref()) .and_then(|meta_item| meta_item.ready()) - .map(|meta_item| { - meta_item - .videos - .iter() - .filter(|video| { - video - .series_info - .as_ref() - .is_some_and(|series_info| series_info.season == *season) - }) - .collect_vec() - }); + .map(|meta_item| meta_item.videos_by_season(*season)); match videos { Some(videos) => { diff --git a/src/models/player.rs b/src/models/player.rs index 22beb42d8..e735604dd 100644 --- a/src/models/player.rs +++ b/src/models/player.rs @@ -684,17 +684,7 @@ impl UpdateWithCtx for Player { .as_ref() .and_then(|meta_item| meta_item.content.as_ref()) .and_then(|meta_item| meta_item.ready()) - .map(|meta_item| { - meta_item - .videos - .iter() - .filter(|video| { - video.series_info.as_ref().is_some_and(|series_info| { - series_info.season == *season - }) - }) - .collect_vec() - }); + .map(|meta_item| meta_item.videos_by_season(*season)); match videos { Some(videos) => { diff --git a/src/types/resource/meta_item.rs b/src/types/resource/meta_item.rs index 1e52f4dcf..be928b7c2 100644 --- a/src/types/resource/meta_item.rs +++ b/src/types/resource/meta_item.rs @@ -265,6 +265,19 @@ impl MetaItem { Either::Right(self.videos.iter().rev()) } } + + /// Returns a vector of videos for a given season + pub fn videos_by_season(&self, season: u32) -> Vec<&Video> { + self.videos + .iter() + .filter(|video| { + video + .series_info + .as_ref() + .is_some_and(|series_info| series_info.season == season) + }) + .collect_vec() + } } #[derive(Default, Clone, PartialEq, Eq, Serialize, Deserialize, Debug)]