// yt - A fully featured command line YouTube client // // Copyright (C) 2024 Benedikt Peetz // SPDX-License-Identifier: GPL-3.0-or-later // // This file is part of Yt. // // You should have received a copy of the License along with this program. // If not, see . use std::path::PathBuf; use bytes::Bytes; use serde::Serialize; mod default; mod definitions; pub mod file_system; #[derive(Serialize)] pub struct Config { pub select: SelectConfig, pub watch: WatchConfig, pub paths: PathsConfig, pub download: DownloadConfig, pub update: UpdateConfig, } #[derive(Serialize)] pub struct UpdateConfig { pub max_backlog: u32, } #[derive(Serialize)] pub struct DownloadConfig { pub max_cache_size: Bytes, } #[derive(Serialize)] pub struct SelectConfig { pub playback_speed: f64, pub subtitle_langs: String, } #[derive(Serialize)] pub struct WatchConfig { pub local_comments_length: usize, } #[derive(Serialize)] pub struct PathsConfig { pub download_dir: PathBuf, pub mpv_config_path: PathBuf, pub mpv_input_path: PathBuf, pub database_path: PathBuf, pub last_selection_path: PathBuf, } // pub fn status_path() -> anyhow::Result { // const STATUS_PATH: &str = "running.info.json"; // get_runtime_path(STATUS_PATH) // } // pub fn subscriptions() -> anyhow::Result { // const SUBSCRIPTIONS: &str = "subscriptions.json"; // get_data_path(SUBSCRIPTIONS) // }