From b5566351b590f420544fe226b59556b77adbb618 Mon Sep 17 00:00:00 2001 From: Henrik Friedrichsen Date: Wed, 8 Apr 2020 21:07:20 +0200 Subject: [PATCH] use cached credentials from librespot attempt at fixing #160 --- src/main.rs | 17 ++++++++++++++--- src/ui/help.rs | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index df7f84e..be04ec8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -48,6 +48,7 @@ use cursive::traits::Identifiable; use cursive::Cursive; use librespot_core::authentication::Credentials; +use librespot_core::cache::Cache; mod album; mod artist; @@ -96,7 +97,7 @@ fn setup_logging(filename: &str) -> Result<(), fern::InitError> { Ok(()) } -fn get_credentials(reset: bool) -> Credentials { +fn credentials_prompt(reset: bool) -> Credentials { let path = config::config_path("credentials.toml"); if reset && fs::remove_file(&path).is_err() { error!("could not delete credential file"); @@ -169,10 +170,20 @@ fn main() { }) }; - let mut credentials = get_credentials(false); + let cache = Cache::new(config::cache_path("librespot"), true); + let mut credentials = { + let cached_credentials = cache.credentials(); + match cached_credentials { + Some(c) => { + info!("Using cached credentials"); + c + } + None => credentials_prompt(false), + } + }; while !spotify::Spotify::test_credentials(credentials.clone()) { - credentials = get_credentials(true); + credentials = credentials_prompt(true); } let theme = theme::load(&cfg); diff --git a/src/ui/help.rs b/src/ui/help.rs index 9ff12fd..620fbd0 100644 --- a/src/ui/help.rs +++ b/src/ui/help.rs @@ -49,7 +49,7 @@ impl ViewExt for HelpView { "Help".to_string() } - fn on_command(&mut self, s: &mut Cursive, cmd: &Command) -> Result { + fn on_command(&mut self, _s: &mut Cursive, cmd: &Command) -> Result { if let Command::Help = cmd { Ok(CommandResult::Consumed(None)) } else {