aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorJokler <jokler@protonmail.com>2020-01-14 20:55:46 +0100
committerGitHub <noreply@github.com>2020-01-14 20:55:46 +0100
commit7e3ef6868ec138992ca22e96539acf385afb8a1c (patch)
tree7c78c590577e2837107be3534730fcb850fcebad /src/main.rs
parent99fbb0b30d0b684fb38890843aa5ac30218ded6d (diff)
downloadpokebot-7e3ef6868ec138992ca22e96539acf385afb8a1c.tar.gz
pokebot-7e3ef6868ec138992ca22e96539acf385afb8a1c.zip
Use youtube-dl json output for metadata access (#3)
* Use youtube-dl json output for metadata access * Fix: meta_data -> metadata
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs31
1 files changed, 18 insertions, 13 deletions
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) => {