Files
podcast-hoarder/src/folders.rs
T
2026-07-02 14:44:14 +01:00

41 lines
1.2 KiB
Rust

use std::path;
use sanitise_file_name::sanitise;
pub(crate) const SPEC_FILE: &str = "spec.toml";
pub(crate) const LOCAL_PODCASTS_DIR: &str = "podcasts";
pub(crate) const LOCAL_PLAYLISTS_DIR: &str = "playlists";
pub(crate) const IPOD_PODCASTS_DIR: &str = "/Podcasts";
macro_rules! playlist_ext { () => {"m3u8"}; }
pub(crate) const PLAYLIST_EXT: &str = playlist_ext!();
macro_rules! bookmark_ext { () => {"bmark"}; }
pub(crate) const BOOKMARK_EXT: &str = bookmark_ext!();
pub(crate) const PLAYLIST_BOOKMARK_EXT: &str = concat!(playlist_ext!(), ".", bookmark_ext!());
pub(crate) const LISTENED_PLAYLIST_PATH: &str = concat!("[PC] (Listened).", playlist_ext!());
pub(crate) const MASTER_PLAYLIST_PATH: &str = concat!("[PC] (Master Feed).", playlist_ext!());
pub(crate) const MASTER_PLAYLIST_NAME: &str = "[PC] (Master Feed)";
pub(crate) const PLAYLIST_PREFIX: &str = "[PC]";
pub(crate) const UNLISTENED_SUFFIX: &str = "(unlistened)";
pub(crate) fn podcast_folder(
root: &path::Path,
alias: &str,
) -> path::PathBuf {
root.join(LOCAL_PODCASTS_DIR).join(sanitise(alias))
}
pub(crate) fn spec_path(
root: &path::Path,
alias: &str,
) -> path::PathBuf {
let folder = podcast_folder(root, alias);
folder.join(SPEC_FILE)
}