From 3eb1adfeb8dd477479404a1269c8682e3b4edf12 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 29 Aug 2022 22:53:37 +0200 Subject: split files --- code/src/atom.rs | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 code/src/atom.rs (limited to 'code/src/atom.rs') diff --git a/code/src/atom.rs b/code/src/atom.rs new file mode 100644 index 0000000..4c6a771 --- /dev/null +++ b/code/src/atom.rs @@ -0,0 +1,73 @@ +use crate::{get_articles, Args, ArticleMeta, BLOG_BASE}; +use std::process::{Command, Stdio}; + +pub fn generate_atom(args: &Args) -> String { + let entries = get_articles(&args.root.as_ref().unwrap()) + .iter() + .map( + |ArticleMeta { + title, + date, + filename, + .. + }| { + let datetime = iso8601::DateTime { + date: date.clone(), + time: iso8601::Time { + hour: 0, + minute: 0, + second: 0, + millisecond: 0, + tz_offset_hours: 0, + tz_offset_minutes: 0, + }, + }; + format!( + r#" + + {title} + + tag:metamuffin.org,{date},{title} + {datetime} + N/A + + metamuffin + metamuffin@disroot.org + + "# + ) + }, + ) + .collect::>(); + format!( + r#" + + metamuffin's blog + where they post pointless stuff + + + urn:uuid:3cf2b704-3d94-4f1f-b194-42798ab5b47c + {} + + metamuffin + metamuffin@disroot.org + + {} + + "#, + now_rfc3339(), + entries.join("\n") + ) +} + +fn now_rfc3339() -> String { + String::from_utf8( + Command::new("/usr/bin/date") + .arg("--iso-8601=minutes") + .stdout(Stdio::piped()) + .output() + .unwrap() + .stdout, + ) + .unwrap() +} -- cgit v1.2.3-70-g09d2