Mercurial > beefweb_mpris
comparison src/player.rs @ 3:18f743c980fa
make this a bit more sane
| author | Paper <paper@tflc.us> |
|---|---|
| date | Sat, 04 Apr 2026 17:03:22 -0400 |
| parents | 594c0f9d7972 |
| children | 26f695129c86 |
comparison
equal
deleted
inserted
replaced
| 2:594c0f9d7972 | 3:18f743c980fa |
|---|---|
| 279 _ => (), | 279 _ => (), |
| 280 }; | 280 }; |
| 281 | 281 |
| 282 let p = pl.unwrap(); | 282 let p = pl.unwrap(); |
| 283 | 283 |
| 284 let playlist_items_result = self.bw.playlist_items(p.active_item.playlist_id.as_str(), p.active_item.index, 1, ["%title%", "%artist%", "%album%", "%discnumber%", "%tracknumber%", "%album artist%", "%path%"].to_vec()).await; | 284 let playlist_items_result = self.bw.playlist_item(p.active_item.playlist_id.as_str(), p.active_item.index, &["%title%", "%artist%", "%album%", "%discnumber%", "%tracknumber%", "%album artist%", "%path%", "%bpm%", "%composer%", "%comment%", "%date%", "%genre%", "%lyricist%"].to_vec()).await; |
| 285 | 285 |
| 286 match playlist_items_result { | 286 match playlist_items_result { |
| 287 Err(_) => return Err(fdo::Error::Failed("uhoh".to_string())), | 287 Err(_) => return Err(fdo::Error::Failed("uhoh".to_string())), |
| 288 _ => (), | 288 _ => (), |
| 289 }; | 289 }; |
| 294 | 294 |
| 295 /* | 295 /* |
| 296 let artwork = self.get_artwork(p.active_item.playlist_id.as_str(), p.active_item.index, track.columns.get(6).unwrap()); | 296 let artwork = self.get_artwork(p.active_item.playlist_id.as_str(), p.active_item.index, track.columns.get(6).unwrap()); |
| 297 */ | 297 */ |
| 298 | 298 |
| 299 let builder = mpris_server::Metadata::builder() | 299 let mut x = mpris_server::Metadata::new(); |
| 300 .length(secs_to_time(p.active_item.duration)) | 300 |
| 301 .album(track.columns.get(2).unwrap()) | 301 x.set_length(Some(secs_to_time(p.active_item.duration))); |
| 302 .artist([track.columns.get(1).unwrap()]) | 302 if track.columns.len() >= 13 { |
| 303 .disc_number(track.columns.get(3).unwrap().parse::<i32>().unwrap()) | 303 x.set_title(Some(track.columns.get(0).unwrap())); |
| 304 .track_number(track.columns.get(4).unwrap().parse::<i32>().unwrap()) | 304 /* XXX musicbrainz has %artists% we can use for a proper list */ |
| 305 .title(track.columns.get(0).unwrap()) | 305 x.set_artist(Some([track.columns.get(1).unwrap()])); |
| 306 .album_artist([track.columns.get(5).unwrap()]); | 306 x.set_album(Some(track.columns.get(2).unwrap())); |
| 307 match track.columns.get(3).unwrap().parse::<i32>() { | |
| 308 Ok(v) => { x.set_disc_number(Some(v)); }, | |
| 309 _ => (), | |
| 310 }; | |
| 311 match track.columns.get(4).unwrap().parse::<i32>() { | |
| 312 Ok(v) => { x.set_track_number(Some(v)); }, | |
| 313 _ => (), | |
| 314 }; | |
| 315 x.set_album_artist(Some([track.columns.get(5).unwrap()])); | |
| 316 /* Why is this an i32 ??? It would make more sense as f32 or f64 */ | |
| 317 match track.columns.get(7).unwrap().parse::<i32>() { | |
| 318 Ok(v) => { x.set_audio_bpm(Some(v)) }, | |
| 319 _ => (), | |
| 320 }; | |
| 321 x.set_composer(Some([track.columns.get(8).unwrap()])); | |
| 322 x.set_comment(Some([track.columns.get(9).unwrap()])); | |
| 323 x.set_content_created(Some(track.columns.get(10).unwrap())); | |
| 324 x.set_genre(Some(track.columns.get(11).unwrap().split(";"))); | |
| 325 x.set_lyricist(Some([track.columns.get(12).unwrap()])); | |
| 326 } | |
| 307 | 327 |
| 308 /* | 328 /* |
| 309 return match artwork.await { | 329 return match artwork.await { |
| 310 Ok(x) => Ok(builder.art_url(urlencoding::encode(format!("file://{}", x).as_str())).build()), | 330 Ok(x) => Ok(builder.art_url(urlencoding::encode(format!("file://{}", x).as_str())).build()), |
| 311 _ => Ok(builder.build()), | 331 _ => Ok(builder.build()), |
| 312 }; | 332 }; |
| 313 */ | 333 */ |
| 314 return Ok(builder.build()); | 334 return Ok(x); |
| 315 } | 335 } |
| 316 | 336 |
| 317 async fn volume(&self) -> fdo::Result<mpris_server::Volume> | 337 async fn volume(&self) -> fdo::Result<mpris_server::Volume> |
| 318 { | 338 { |
| 319 let vr = self.bw.volume().await; | 339 let vr = self.bw.volume().await; |
