move foreign SpotifyId struct out of Track model

This commit is contained in:
Henrik Friedrichsen
2019-03-13 23:30:50 +01:00
parent 8894c356f7
commit 7aa6d49f3d
3 changed files with 7 additions and 6 deletions

View File

@@ -25,7 +25,7 @@ fn get_metadata(queue: Arc<Mutex<Queue>>) -> HashMap<String, Variant<Box<RefArg>
let track = queue.get_current();
hm.insert("mpris:trackid".to_string(), Variant(Box::new(
track.map(|t| format!("spotify:track:{}", t.id.to_base62())).unwrap_or("".to_string())
track.map(|t| format!("spotify:track:{}", t.id)).unwrap_or("".to_string())
)));
hm.insert("mpris:length".to_string(), Variant(Box::new(
track.map(|t| t.duration * 1_000_000).unwrap_or(0)

View File

@@ -3,6 +3,7 @@ use librespot::core::config::SessionConfig;
use librespot::core::keymaster::get_token;
use librespot::core::keymaster::Token;
use librespot::core::session::Session;
use librespot::core::spotify_id::SpotifyId;
use librespot::playback::config::PlayerConfig;
use librespot::playback::audio_backend;
@@ -106,7 +107,8 @@ impl futures::Future for Worker {
debug!("message received!");
match cmd {
WorkerCommand::Load(track) => {
self.play_task = Box::new(self.player.load(track.id, false, 0));
let id = SpotifyId::from_base62(&track.id).expect("could not parse id");
self.play_task = Box::new(self.player.load(id, false, 0));
info!("player loading track: {:?}", track);
}
WorkerCommand::Play => {

View File

@@ -1,11 +1,10 @@
use std::fmt;
use librespot::core::spotify_id::SpotifyId;
use rspotify::spotify::model::track::FullTrack;
#[derive(Clone)]
pub struct Track {
pub id: SpotifyId,
pub id: String,
pub title: String,
pub track_number: u32,
pub disc_number: i32,
@@ -36,7 +35,7 @@ impl Track {
};
Track {
id: SpotifyId::from_base62(&track.id).expect("could not load track"),
id: track.id.clone(),
title: track.name.clone(),
track_number: track.track_number,
disc_number: track.disc_number,
@@ -69,7 +68,7 @@ impl fmt::Debug for Track {
"({} - {} ({}))",
self.artists.join(", "),
self.title,
self.id.to_base62()
self.id
)
}
}