move foreign SpotifyId struct out of Track model
This commit is contained in:
@@ -25,7 +25,7 @@ fn get_metadata(queue: Arc<Mutex<Queue>>) -> HashMap<String, Variant<Box<RefArg>
|
|||||||
let track = queue.get_current();
|
let track = queue.get_current();
|
||||||
|
|
||||||
hm.insert("mpris:trackid".to_string(), Variant(Box::new(
|
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(
|
hm.insert("mpris:length".to_string(), Variant(Box::new(
|
||||||
track.map(|t| t.duration * 1_000_000).unwrap_or(0)
|
track.map(|t| t.duration * 1_000_000).unwrap_or(0)
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ use librespot::core::config::SessionConfig;
|
|||||||
use librespot::core::keymaster::get_token;
|
use librespot::core::keymaster::get_token;
|
||||||
use librespot::core::keymaster::Token;
|
use librespot::core::keymaster::Token;
|
||||||
use librespot::core::session::Session;
|
use librespot::core::session::Session;
|
||||||
|
use librespot::core::spotify_id::SpotifyId;
|
||||||
use librespot::playback::config::PlayerConfig;
|
use librespot::playback::config::PlayerConfig;
|
||||||
|
|
||||||
use librespot::playback::audio_backend;
|
use librespot::playback::audio_backend;
|
||||||
@@ -106,7 +107,8 @@ impl futures::Future for Worker {
|
|||||||
debug!("message received!");
|
debug!("message received!");
|
||||||
match cmd {
|
match cmd {
|
||||||
WorkerCommand::Load(track) => {
|
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);
|
info!("player loading track: {:?}", track);
|
||||||
}
|
}
|
||||||
WorkerCommand::Play => {
|
WorkerCommand::Play => {
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
|
||||||
use librespot::core::spotify_id::SpotifyId;
|
|
||||||
use rspotify::spotify::model::track::FullTrack;
|
use rspotify::spotify::model::track::FullTrack;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct Track {
|
pub struct Track {
|
||||||
pub id: SpotifyId,
|
pub id: String,
|
||||||
pub title: String,
|
pub title: String,
|
||||||
pub track_number: u32,
|
pub track_number: u32,
|
||||||
pub disc_number: i32,
|
pub disc_number: i32,
|
||||||
@@ -36,7 +35,7 @@ impl Track {
|
|||||||
};
|
};
|
||||||
|
|
||||||
Track {
|
Track {
|
||||||
id: SpotifyId::from_base62(&track.id).expect("could not load track"),
|
id: track.id.clone(),
|
||||||
title: track.name.clone(),
|
title: track.name.clone(),
|
||||||
track_number: track.track_number,
|
track_number: track.track_number,
|
||||||
disc_number: track.disc_number,
|
disc_number: track.disc_number,
|
||||||
@@ -69,7 +68,7 @@ impl fmt::Debug for Track {
|
|||||||
"({} - {} ({}))",
|
"({} - {} ({}))",
|
||||||
self.artists.join(", "),
|
self.artists.join(", "),
|
||||||
self.title,
|
self.title,
|
||||||
self.id.to_base62()
|
self.id
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user