diff options
Diffstat (limited to '')
-rw-r--r-- | src/posts/syndication.rs | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/src/posts/syndication.rs b/src/posts/syndication.rs deleted file mode 100644 index f6f0b17..0000000 --- a/src/posts/syndication.rs +++ /dev/null @@ -1,96 +0,0 @@ -use atom_syndication::{Category, Content, Entry, Feed, Generator, Link, Person, Text, TextType}; - -use super::{Article, Post}; - -pub async fn atom(posts: Vec<Post<Article>>) -> Feed { - let me = Person { - name: "cel".into(), - email: Some("cel@blos.sm".into()), - uri: Some("https://blos.sm".into()), - }; - let mut authors = Vec::new(); - authors.push(me); - let link = Link { - href: "https://blos.sm/feed".into(), - rel: "self".into(), - hreflang: Some("en".into()), - mime_type: Some("application/atom+xml".into()), - title: Some("atom feed".into()), - length: None, - }; - let mut links = Vec::new(); - links.push(link); - let mut feed = Feed { - title: Text { - value: "cel's site".into(), - base: None, - lang: Some("en".into()), - r#type: TextType::Text, - }, - id: "https://blos.sm".into(), - updated: posts[0].created_at.into(), - authors: authors.clone(), - categories: Vec::new(), - contributors: authors.clone(), - generator: Some(Generator { - value: "blos.sm".into(), - uri: Some("https://bunny.garden/cel/blos.sm".into()), - version: None, - }), - icon: Some("/icon.png".into()), - links: links.clone(), - logo: Some("/logo.png".into()), - rights: None, - subtitle: None, - entries: Vec::new(), - base: Some("https://blos.sm".into()), - lang: Some("en".into()), - ..Default::default() - }; - for mut post in posts { - post.render().await.unwrap_or_default(); - let mut id = String::from("https://blos.sm/blog/"); - id.push_str(&post.data.name); - let categories = post - .tags - .into_iter() - .map(|tag| Category { - term: tag.clone(), - scheme: None, - label: Some(tag.clone()), - }) - .collect(); - let entry = Entry { - title: Text { - value: post.subject.unwrap_or_default(), - base: None, - lang: Some("en".into()), - r#type: TextType::Text, - }, - id: id.clone(), - updated: if let Some(updated_at) = post.updated_at { - updated_at.into() - } else { - post.created_at.into() - }, - authors: authors.clone(), - categories, - contributors: authors.clone(), - links: links.clone(), - published: Some(post.created_at.into()), - rights: None, - source: None, - summary: None, - content: Some(Content { - base: None, - lang: Some("en".into()), - value: post.render, - src: Some(id), - content_type: Some("html".to_string()), - }), - ..Default::default() - }; - feed.entries.push(entry); - } - feed -} |