From 5f5b6f84a8613263cdf3d4d9ff1e228c5c1a8813 Mon Sep 17 00:00:00 2001 From: Tim <135014430+nagisa77@users.noreply.github.com> Date: Thu, 21 Aug 2025 14:28:33 +0800 Subject: [PATCH] feat: add markdown comments and link to rss --- .../openisle/controller/RssController.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/backend/src/main/java/com/openisle/controller/RssController.java b/backend/src/main/java/com/openisle/controller/RssController.java index 4970ebcc1..8fe6a3fa4 100644 --- a/backend/src/main/java/com/openisle/controller/RssController.java +++ b/backend/src/main/java/com/openisle/controller/RssController.java @@ -1,7 +1,10 @@ package com.openisle.controller; import com.openisle.model.Post; +import com.openisle.model.Comment; +import com.openisle.model.CommentSort; import com.openisle.service.PostService; +import com.openisle.service.CommentService; import lombok.RequiredArgsConstructor; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; @@ -31,6 +34,7 @@ import java.util.regex.Pattern; @RequiredArgsConstructor public class RssController { private final PostService postService; + private final CommentService commentService; @Value("${app.website-url:https://www.open-isle.com}") private String websiteUrl; @@ -103,6 +107,19 @@ public class RssController { enclosure = absolutifyUrl(enclosure, base); } + // Top comments in Markdown + List topComments = commentService + .getCommentsForPost(p.getId(), CommentSort.MOST_INTERACTIONS); + topComments = topComments.subList(0, Math.min(10, topComments.size())); + StringBuilder commentMd = new StringBuilder(); + for (Comment c : topComments) { + commentMd.append("> @") + .append(nullSafe(c.getAuthor().getUsername())) + .append(": ") + .append(nullSafe(c.getContent()).replace("\r", "")) + .append("\n\n"); + } + sb.append(""); elem(sb, "title", cdata(nullSafe(p.getTitle()))); elem(sb, "link", link); @@ -117,6 +134,11 @@ public class RssController { sb.append(""); } + // Markdown comments + elem(sb, "commentsMarkdown", cdata(commentMd.toString())); + // Markdown original link + elem(sb, "originalLinkMarkdown", cdata("[原文链接](" + link + ")")); + sb.append(""); }