From 7e3ef6868ec138992ca22e96539acf385afb8a1c Mon Sep 17 00:00:00 2001 From: Jokler Date: Tue, 14 Jan 2020 20:55:46 +0100 Subject: Use youtube-dl json output for metadata access (#3) * Use youtube-dl json output for metadata access * Fix: meta_data -> metadata --- src/main.rs | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 18b9cc7..93f2fd7 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,6 +19,7 @@ mod youtube_dl; use audio_player::*; use playlist::*; use teamspeak::*; +use youtube_dl::AudioMetadata; #[derive(StructOpt, Debug)] #[structopt(raw(global_settings = "&[AppSettings::ColoredHelp]"))] @@ -107,33 +108,37 @@ impl Application { } } - fn start_playing_audio(&self, request: AudioRequest) { - self.send_message(&format!("Playing '{}'", request.title)); - self.set_description(&format!("Currently playing '{}'", request.title)); + fn start_playing_audio(&self, metadata: AudioMetadata) { + if let Some(title) = metadata.title { + self.send_message(&format!("Playing '{}'", title)); + self.set_description(&format!("Currently playing '{}'", title)); + } else { + self.send_message("Playing unknown title"); + self.set_description("Currently playing"); + } self.player.reset().unwrap(); - self.player.set_source_url(request.address).unwrap(); + self.player.set_source_url(metadata.url).unwrap(); self.player.play().unwrap(); } pub async fn add_audio(&self, url: String) { match youtube_dl::get_audio_download_url(url).await { - Ok((audio_url, audio_title)) => { - info!("Found audio url: {}", audio_url); - - let request = AudioRequest { - title: audio_title, - address: audio_url, - }; + Ok(metadata) => { + info!("Found audio url: {}", metadata.url); let mut playlist = self.playlist.lock().expect("Mutex was not poisoned"); - playlist.push(request.clone()); + playlist.push(metadata.clone()); if !self.player.is_started() { if let Some(request) = playlist.pop() { self.start_playing_audio(request); } } else { - self.send_message(&format!("Added '{}' to playlist", request.title)); + if let Some(title) = metadata.title { + self.send_message(&format!("Added '{}' to playlist", title)); + } else { + self.send_message("Added to playlist"); + } } } Err(e) => { -- cgit v1.2.3-70-g09d2