From 20536580fce05e9c72513528d33440b7e9297f38 Mon Sep 17 00:00:00 2001 From: Henrik Friedrichsen Date: Sat, 6 Jun 2020 12:07:59 +0200 Subject: [PATCH] refactoring/simplifications (via cargo clippy) --- src/mpris.rs | 82 ++++++++++++++++++-------------------------------- src/spotify.rs | 4 +-- 2 files changed, 31 insertions(+), 55 deletions(-) diff --git a/src/mpris.rs b/src/mpris.rs index e611829..88b7b93 100644 --- a/src/mpris.rs +++ b/src/mpris.rs @@ -8,11 +8,11 @@ use dbus::stdintf::org_freedesktop_dbus::PropertiesPropertiesChanged; use dbus::tree::{Access, Factory}; use dbus::{Path, SignalArgs}; +use crate::album::Album; +use crate::playlist::Playlist; use crate::queue::{Queue, RepeatSetting}; use crate::spotify::{PlayerEvent, Spotify, URIType}; use crate::track::Track; -use crate::album::Album; -use crate::playlist::Playlist; type Metadata = HashMap>>; struct MprisState(String, Option); @@ -398,66 +398,44 @@ fn run_dbus_server(spotify: Arc, queue: Arc, rx: mpsc::Receiver< }; let method_openuri = { - let spotify = spotify.clone(); - let queue = queue.clone(); f.method("OpenUri", (), move |m| { let uri_data: Option<&str> = m.msg.get1(); let uri = match uri_data { Some(s) => s, - None => "" + None => "", }; - let id = &uri[uri.rfind(":").unwrap_or(0)+1..uri.len()]; + let id = &uri[uri.rfind(':').unwrap_or(0) + 1..uri.len()]; let uri_type = URIType::from_uri(uri); - match uri_type{ + match uri_type { Some(URIType::Album) => { - let album = spotify.album(&id); - match album { - Some(a) => { - let tracks = &Album::from(&a).tracks; - match tracks { - Some(t) => { - queue.clear(); - let index = queue.append_next(t.iter().collect()); - queue.play(index, false, false) - }, - None => {} - } - }, - None => {} - } - }, - Some(URIType::Track) => { - let track = spotify.track(&id); - match track { - Some(t) => { + if let Some(a) = spotify.album(&id) { + if let Some(t) = &Album::from(&a).tracks { queue.clear(); - queue.append(&Track::from(&t)); - queue.play(0, false, false) - }, - None => {} + let index = queue.append_next(t.iter().collect()); + queue.play(index, false, false) + } } - }, + } + Some(URIType::Track) => { + if let Some(t) = spotify.track(&id) { + queue.clear(); + queue.append(&Track::from(&t)); + queue.play(0, false, false) + } + } Some(URIType::Playlist) => { - let playlist = spotify.playlist(&id); - match playlist { - Some(p) => { - let mut playlist = Playlist::from(&p); - let spotify = spotify.clone(); - &playlist.load_tracks(spotify); - let tracks = &playlist.tracks; - match tracks{ - Some(t) => { - queue.clear(); - let index = queue.append_next(t.iter().collect()); - queue.play(index, false, false) - }, - None => {} - } - }, - None => {} - } - }, - Some(URIType::Artist) => {}, + if let Some(p) = spotify.playlist(&id) { + let mut playlist = Playlist::from(&p); + let spotify = spotify.clone(); + playlist.load_tracks(spotify); + if let Some(t) = &playlist.tracks { + queue.clear(); + let index = queue.append_next(t.iter().collect()); + queue.play(index, false, false) + } + } + } + Some(URIType::Artist) => {} None => {} } Ok(vec![m.msg.method_return()]) diff --git a/src/spotify.rs b/src/spotify.rs index 9af0270..116177d 100644 --- a/src/spotify.rs +++ b/src/spotify.rs @@ -18,9 +18,7 @@ use rspotify::model::album::{FullAlbum, SavedAlbum, SimplifiedAlbum}; use rspotify::model::artist::FullArtist; use rspotify::model::page::{CursorBasedPage, Page}; use rspotify::model::playlist::{FullPlaylist, PlaylistTrack, SimplifiedPlaylist}; -use rspotify::model::search::{ - SearchAlbums, SearchArtists, SearchPlaylists, SearchTracks, -}; +use rspotify::model::search::{SearchAlbums, SearchArtists, SearchPlaylists, SearchTracks}; use rspotify::model::track::{FullTrack, SavedTrack}; use rspotify::model::user::PrivateUser;