aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils.rs
blob: ab4876f455beef1805207c6c313bb8644c93ebf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
use std::fs;
use std::path::PathBuf;
use std::collections::BTreeSet;
use std::env;


pub fn already_downloaded(dir: &str) -> BTreeSet<String> {
    let mut result = BTreeSet::new();

    let mut path = get_podcast_dir();
    path.push(dir);

    if let Ok(entries) = fs::read_dir(path) {
        for entry in entries {
            if let Ok(entry) = entry {
                match entry.file_name().into_string() {
                    Ok(val) => {
                        result.insert(String::from(val.trim_right_matches(".mp3")));
                    }
                    Err(err) => {
                        println!("OsString: {:?} couldn't be converted to String", err);
                    }
                }
            }
        }
    }
    result
}

pub fn get_podcast_dir() -> PathBuf {
    let mut path = env::home_dir().unwrap();
    path.push("Podcasts");
    path
}