From 1d0e70978429f812c98ceaf25bfcf00311bf3497 Mon Sep 17 00:00:00 2001 From: Love Billenius Date: Wed, 8 Mar 2023 19:12:26 +0100 Subject: [PATCH] sort by links when in offline mode --- src/main.rs | 5 ----- src/offlineparser.rs | 12 +++++++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main.rs b/src/main.rs index a660089..b94481b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -44,11 +44,6 @@ async fn main() { .iter() .for_each(|s| println!("{}", &s)); - // let gm = GrandMother::new(Configuration::new().expect("Failed to write to configfile")) - // .await - // .unwrap(); - // let parser = Parser::new(config.clone()).await; - let mut mpv_fs = false; let mut search_result: Option>> = None; let mut readline = Readline::new(); diff --git a/src/offlineparser.rs b/src/offlineparser.rs index 43960c7..b34d7fd 100644 --- a/src/offlineparser.rs +++ b/src/offlineparser.rs @@ -6,12 +6,12 @@ use crate::{m3u8::M3u8, Configuration, GetM3u8, GetPlayPath, OfflineEntry}; #[derive(Serialize)] pub struct OfflineParser { - m3u8_items: Rc>, + offline_entries: Rc>, } impl OfflineParser { pub fn new(config: &Configuration) -> Self { Self { - m3u8_items: config.offlinefile_content.clone(), + offline_entries: config.offlinefile_content.clone(), } } } @@ -20,13 +20,13 @@ impl Deref for OfflineParser { type Target = Vec; fn deref(&self) -> &Self::Target { - &*self.m3u8_items + &*self.offline_entries } } impl GetPlayPath for OfflineParser { fn get_path_to_play(&self, link: Rc) -> Result, String> { - for offline_entry in &*self.m3u8_items { + for offline_entry in &*self.offline_entries { if *offline_entry.link == *link { return Ok(offline_entry.path.clone()); } @@ -37,6 +37,8 @@ impl GetPlayPath for OfflineParser { impl GetM3u8 for OfflineParser { fn get_m3u8(&self) -> Vec<&M3u8> { - self.m3u8_items.iter().map(|x| &**x).collect() + let mut items: Vec<&M3u8> = self.offline_entries.iter().map(|x| &**x).collect(); + items.sort_by_key(|x| &x.link); + items } }