mirror of
https://github.com/arabianq/pipewire-soundpad.git
synced 2026-07-26 05:46:59 +00:00
fix(lib): don't create '~' in $HOME (#166)
* fix(lib): don't create '~' in $HOME * throw an error wen fail to get home directory --------- Co-authored-by: arabian <a.tevg@ya.ru>
This commit is contained in:
@@ -59,7 +59,7 @@ async fn download_audio_from_url(uri: &str) -> Result<PathBuf> {
|
|||||||
.and_then(|n| n.to_str())
|
.and_then(|n| n.to_str())
|
||||||
.unwrap_or("downloaded_audio.mp3");
|
.unwrap_or("downloaded_audio.mp3");
|
||||||
|
|
||||||
let save_path = ensure_pwsp_audio_dir().join(sanitized_file_name);
|
let save_path = ensure_pwsp_audio_dir()?.join(sanitized_file_name);
|
||||||
|
|
||||||
let response = reqwest::get(target_url)
|
let response = reqwest::get(target_url)
|
||||||
.await?
|
.await?
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ impl Default for GuiConfig {
|
|||||||
save_scale_factor: false,
|
save_scale_factor: false,
|
||||||
pause_on_exit: false,
|
pause_on_exit: false,
|
||||||
|
|
||||||
dirs: vec![ensure_pwsp_audio_dir()],
|
dirs: vec![ensure_pwsp_audio_dir().unwrap()],
|
||||||
|
|
||||||
preferred_theme: PreferredTheme::System,
|
preferred_theme: PreferredTheme::System,
|
||||||
dirs_settings: HashMap::new(),
|
dirs_settings: HashMap::new(),
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ use crate::{
|
|||||||
};
|
};
|
||||||
use anyhow::{Result, anyhow};
|
use anyhow::{Result, anyhow};
|
||||||
use std::{
|
use std::{
|
||||||
|
fs,
|
||||||
path::PathBuf,
|
path::PathBuf,
|
||||||
sync::{Arc, Mutex},
|
sync::{Arc, Mutex},
|
||||||
time::Instant,
|
time::Instant,
|
||||||
@@ -37,15 +38,19 @@ pub fn make_request_async(request: Request) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ensure_pwsp_audio_dir() -> PathBuf {
|
pub fn ensure_pwsp_audio_dir() -> Result<PathBuf> {
|
||||||
let audio_dir = dirs::audio_dir().unwrap_or("~/Music".into());
|
let audio_dir = dirs::audio_dir().unwrap_or(
|
||||||
|
dirs::home_dir()
|
||||||
|
.map(|p| p.join("Music"))
|
||||||
|
.ok_or_else(|| anyhow!("Failed to get home directory. Is your system ok?"))?,
|
||||||
|
);
|
||||||
let pwsp_audio_dir = audio_dir.join("PWSP");
|
let pwsp_audio_dir = audio_dir.join("PWSP");
|
||||||
|
|
||||||
if !pwsp_audio_dir.exists() {
|
if !pwsp_audio_dir.exists() {
|
||||||
std::fs::create_dir_all(&pwsp_audio_dir).ok();
|
fs::create_dir_all(&pwsp_audio_dir)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
pwsp_audio_dir
|
Ok(pwsp_audio_dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn format_time_pair(position: f32, duration: f32) -> String {
|
pub fn format_time_pair(position: f32, duration: f32) -> String {
|
||||||
|
|||||||
Reference in New Issue
Block a user