From 0aa37fd12d2bfcd04c2926fcbc7e915ac6f72af2 Mon Sep 17 00:00:00 2001 From: MrLetsplay Date: Sun, 18 Feb 2024 14:53:33 +0100 Subject: [PATCH] Add publication date to RSS feed --- src/main/java/me/mrletsplay/mdblog/MdBlog.java | 2 +- src/main/java/me/mrletsplay/mdblog/rss/RSSFeed.java | 6 ++++++ src/main/java/me/mrletsplay/mdblog/rss/RSSItem.java | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/mrletsplay/mdblog/MdBlog.java b/src/main/java/me/mrletsplay/mdblog/MdBlog.java index 71b7646..97883d8 100644 --- a/src/main/java/me/mrletsplay/mdblog/MdBlog.java +++ b/src/main/java/me/mrletsplay/mdblog/MdBlog.java @@ -215,7 +215,7 @@ public class MdBlog { .filter(e -> e.getKey().startsWith(blogPath) && (recursive || e.getKey().length() == path.length())) .forEach(e -> { Post p = e.getValue(); - feed.addItem(new RSSItem(p.getMetadata().title(), p.getMetadata().author(), config.link() + "/" + e.getKey().subPath(blogPath.length()), p.getMetadata().description())); + feed.addItem(new RSSItem(p.getMetadata().date(), p.getMetadata().title(), p.getMetadata().author(), config.link() + "/" + e.getKey().subPath(blogPath.length()), p.getMetadata().description())); }); ctx.respond(HttpStatusCodes.OK_200, new RSSResponse(feed)); return; diff --git a/src/main/java/me/mrletsplay/mdblog/rss/RSSFeed.java b/src/main/java/me/mrletsplay/mdblog/rss/RSSFeed.java index 891be6e..42c3a3f 100644 --- a/src/main/java/me/mrletsplay/mdblog/rss/RSSFeed.java +++ b/src/main/java/me/mrletsplay/mdblog/rss/RSSFeed.java @@ -1,5 +1,7 @@ package me.mrletsplay.mdblog.rss; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @@ -55,6 +57,10 @@ public class RSSFeed { Element itemEl = doc.createElement("item"); channel.appendChild(itemEl); + Element itDate = doc.createElement("pubDate"); + itDate.setTextContent(DateTimeFormatter.RFC_1123_DATE_TIME.format(item.date().atZone(ZoneId.systemDefault()))); + itemEl.appendChild(itDate); + Element itTitle = doc.createElement("title"); itTitle.setTextContent(item.title()); itemEl.appendChild(itTitle); diff --git a/src/main/java/me/mrletsplay/mdblog/rss/RSSItem.java b/src/main/java/me/mrletsplay/mdblog/rss/RSSItem.java index 6c1ef22..7e6b934 100644 --- a/src/main/java/me/mrletsplay/mdblog/rss/RSSItem.java +++ b/src/main/java/me/mrletsplay/mdblog/rss/RSSItem.java @@ -1,5 +1,7 @@ package me.mrletsplay.mdblog.rss; -public record RSSItem(String title, String author, String link, String description) { +import java.time.Instant; + +public record RSSItem(Instant date, String title, String author, String link, String description) { }