From ceab6a148233ffb23de19411a3e5579e3394a35b Mon Sep 17 00:00:00 2001 From: clerie Date: Sun, 5 Jan 2025 15:34:31 +0100 Subject: [PATCH] Add feed name --- src/main.rs | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index d7673b4..56410b2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,24 +37,37 @@ fn fetch_feed(url: impl IntoUrl) -> Result { Ok(parse(&content[..])?) } -fn read_feed_file(path: &str) -> Result> { - let mut out = Vec::new(); +struct FeedFile { + name: String, + urls: Vec, +} + +fn read_feed_file(path: &str) -> Result { + let mut name = String::from(path); + let mut urls = Vec::new(); for line in std::fs::read_to_string(path)?.lines() { let line = line.trim().to_string(); if line == "" { continue; } + if line.starts_with("# name: ") { + name = String::from(&line[8..]); + continue; + } if line.starts_with("#") { continue; } let url = Url::parse(&line)?; println!("{}", url); - out.push(url); + urls.push(url); } - Ok(out) + Ok(FeedFile{ + name: name, + urls: urls, + }) } fn main() -> Result<()> { @@ -62,9 +75,9 @@ fn main() -> Result<()> { let mut feed_items = Vec::new(); - let feeds = read_feed_file(&cli.feeds)?; + let feed_file = read_feed_file(&cli.feeds)?; - for feed_url in feeds { + for feed_url in feed_file.urls { feed_items.extend(fetch_feed(feed_url)?.entries); } @@ -83,8 +96,10 @@ fn main() -> Result<()> { out.push_str("\n"); out.push_str("\n"); out.push_str("\n"); + out.push_str(&format!("{} - rainbowrss", feed_file.name)); out.push_str("\n"); out.push_str("\n"); + out.push_str(&format!("

{}

", feed_file.name)); out.push_str("
    \n");