From b65c7a75feda58d29f9af4022fdb58313b4c5d37 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Wed, 23 Jun 2021 09:26:41 +0100 Subject: [PATCH] Handle relative links when parsing HTML. --- .../java/org/qortal/api/resource/WebsiteResource.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/qortal/api/resource/WebsiteResource.java b/src/main/java/org/qortal/api/resource/WebsiteResource.java index 8696c293..9b291089 100644 --- a/src/main/java/org/qortal/api/resource/WebsiteResource.java +++ b/src/main/java/org/qortal/api/resource/WebsiteResource.java @@ -212,15 +212,17 @@ public class WebsiteResource { Elements href = document.select("[href]"); for (Element element : href) { String elementHtml = element.attr("href"); - if (elementHtml.startsWith("/") && !elementHtml.startsWith("//")) { - element.attr("href", "/site/" +resourceId + element.attr("href")); + if (!elementHtml.startsWith("http") && !elementHtml.startsWith("//")) { + String slash = (elementHtml.startsWith("/") ? "" : File.separator); + element.attr("href", "/site/" +resourceId + slash + element.attr("href")); } } Elements src = document.select("[src]"); for (Element element : src) { String elementHtml = element.attr("src"); - if (elementHtml.startsWith("/") && !elementHtml.startsWith("//")) { - element.attr("src", "/site/" +resourceId + element.attr("src")); + if (!elementHtml.startsWith("http") && !elementHtml.startsWith("//")) { + String slash = (elementHtml.startsWith("/") ? "" : File.separator); + element.attr("src", "/site/" +resourceId + slash + element.attr("src")); } } return document.html().getBytes();