From 979ec0e1ac7b22e0d95688190bce42aeb352d9bb Mon Sep 17 00:00:00 2001 From: ftl1ght Date: Wed, 27 Sep 2023 14:30:07 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:rss=20=E4=B8=AD=E7=94=9F?= =?UTF-8?q?=E6=88=90=E7=9A=84=20link=20=E5=AD=97=E6=AE=B5=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E4=B8=8D=E6=AD=A3=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../java/run/halo/feed/FeedServiceImpl.java | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 3ec52e6..a715afc 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ dependencies { implementation 'org.dom4j:dom4j:2.1.3' implementation 'org.apache.commons:commons-text:1.10.0' - implementation platform('run.halo.tools.platform:plugin:2.5.0-SNAPSHOT') + implementation platform('run.halo.tools.platform:plugin:2.9.0-SNAPSHOT') compileOnly 'run.halo.app:api' testImplementation 'run.halo.app:api' diff --git a/src/main/java/run/halo/feed/FeedServiceImpl.java b/src/main/java/run/halo/feed/FeedServiceImpl.java index 9571fd6..2907e2d 100644 --- a/src/main/java/run/halo/feed/FeedServiceImpl.java +++ b/src/main/java/run/halo/feed/FeedServiceImpl.java @@ -19,6 +19,8 @@ import run.halo.app.infra.SystemSetting; import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.util.Objects; @Service @@ -135,9 +137,9 @@ private Mono getFeedContext(ServerRequest request) { Assert.notNull(basicPluginSetting.getDescriptionType(), "descriptionType cannot be null"); - var externalUrl = externalUrlSupplier.get(); - if (!externalUrl.isAbsolute()) { - externalUrl = request.exchange().getRequest().getURI().resolve(externalUrl); + var externalUrl = externalUrlSupplier.getRaw(); + if (externalUrl == null) { + externalUrl = externalUrlSupplier.getURL(request.exchange().getRequest()); } // Build feed context return new FeedContext(basicPluginSetting, systemBasicSetting, externalUrl); @@ -155,13 +157,17 @@ private Mono postListResultToXmlServerResponse( if (permalink != null) { var permalinkUri = URI.create(permalink); if (!permalinkUri.isAbsolute()) { - permalinkUri = feedContext.externalUrl.resolve(permalinkUri); + try { + permalinkUri = feedContext.externalUrl.toURI().resolve(permalinkUri); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } } permalink = permalinkUri.toString(); } var itemBuilder = RSS2.Item.builder() .title(post.getSpec().getTitle()) - .link(permalink) + .link(feedContext.externalUrl.toString() + permalink) .pubDate(post.getSpec().getPublishTime()) .guid(post.getStatusOrDefault().getPermalink()); @@ -207,6 +213,6 @@ private RSS2 buildBaseRss(FeedContext feedContext) { } record FeedContext(BasicSetting basicPluginSetting, SystemSetting.Basic systemBasicSetting, - URI externalUrl) { + URL externalUrl) { } } From c394e0c2f969a6e36da2441f2d5d8d27f827528e Mon Sep 17 00:00:00 2001 From: Tree Yang <> Date: Wed, 27 Sep 2023 16:42:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E9=AB=98=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E9=9C=80=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/plugin.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/plugin.yaml b/src/main/resources/plugin.yaml index 79ba8f5..7d9b334 100644 --- a/src/main/resources/plugin.yaml +++ b/src/main/resources/plugin.yaml @@ -9,7 +9,7 @@ metadata: spec: enabled: true version: 1.1.1 - requires: ">=2.4.0" + requires: ">=2.7.0" author: name: Halo OSS Team website: https://github.com/halo-dev