// yt - A fully featured command line YouTube client // // Copyright (C) 2024 Benedikt Peetz <benedikt.peetz@b-peetz.de> // 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 <https://www.gnu.org/licenses/gpl-3.0.txt>. //! The data structures needed to express the file, which the user edits use anyhow::{Context, Result}; use trinitry::Trinitry; pub mod display; pub mod duration; pub fn process_line(line: &str) -> Result<Option<Vec<String>>> { // Filter out comments and empty lines if line.starts_with('#') || line.trim().is_empty() { Ok(None) } else { // pick 2195db "CouchRecherche? Gunnar und Han von STRG_F sind #mitfunkzuhause" "2020-04-01" "STRG_F - Live" "[1h 5m]" "https://www.youtube.com/watch?v=C8UXOaoMrXY" let tri = Trinitry::new(line).with_context(|| format!("Failed to parse line '{}'", line))?; let mut vec = Vec::with_capacity(tri.arguments().len() + 1); vec.push(tri.command().to_owned()); vec.extend(tri.arguments().to_vec().into_iter()); Ok(Some(vec)) } }