From 8b9e4b98de9a1f6522a3c6afcfb4fbfb66626e80 Mon Sep 17 00:00:00 2001 From: soloturn Date: Sat, 9 Dec 2023 16:03:57 +0100 Subject: [PATCH] new URI instead of new URL, motherless, nfsfw. --- .../ripme/ripper/rippers/MotherlessRipper.java | 10 ++++++---- .../rarchives/ripme/ripper/rippers/NfsfwRipper.java | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/MotherlessRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/MotherlessRipper.java index 46331c7b..ee657fb9 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/MotherlessRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/MotherlessRipper.java @@ -2,6 +2,8 @@ package com.rarchives.ripme.ripper.rippers; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -66,13 +68,13 @@ public class MotherlessRipper extends AbstractHTMLRipper { } @Override - public Document getNextPage(Document doc) throws IOException { + public Document getNextPage(Document doc) throws IOException, URISyntaxException { Elements nextPageLink = doc.head().select("link[rel=next]"); if (nextPageLink.isEmpty()) { throw new IOException("Last page reached"); } else { String referrerLink = doc.head().select("link[rel=canonical]").first().attr("href"); - URL nextURL = new URL(this.url, nextPageLink.first().attr("href")); + URL nextURL = this.url.toURI().resolve(nextPageLink.first().attr("href")).toURL(); return Http.url(nextURL).referrer(referrerLink).get(); } } @@ -180,11 +182,11 @@ public class MotherlessRipper extends AbstractHTMLRipper { if (Utils.getConfigBoolean("download.save_order", true)) { prefix = String.format("%03d_", index); } - addURLToDownload(new URL(file), prefix); + addURLToDownload(new URI(file).toURL(), prefix); } else { LOGGER.warn("[!] could not find '__fileurl' at " + url); } - } catch (IOException e) { + } catch (IOException | URISyntaxException e) { LOGGER.error("[!] Exception while loading/parsing " + this.url, e); } } diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/NfsfwRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/NfsfwRipper.java index 03a4717f..595dd452 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/NfsfwRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/NfsfwRipper.java @@ -2,6 +2,8 @@ package com.rarchives.ripme.ripper.rippers; import java.io.IOException; import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; import java.net.URL; import java.util.ArrayList; import java.util.List; @@ -104,13 +106,13 @@ public class NfsfwRipper extends AbstractHTMLRipper { } @Override - public URL sanitizeURL(URL url) throws MalformedURLException { + public URL sanitizeURL(URL url) throws MalformedURLException, URISyntaxException { // always start on the first page of an album // (strip the options after the '?') String u = url.toExternalForm(); if (u.contains("?")) { u = u.substring(0, u.indexOf("?")); - return new URL(u); + return new URI(u).toURL(); } else { return url; } @@ -220,8 +222,8 @@ public class NfsfwRipper extends AbstractHTMLRipper { if (file.startsWith("/")) { file = "http://nfsfw.com" + file; } - addURLToDownload(new URL(file), getPrefix(index), this.subdir); - } catch (IOException e) { + addURLToDownload(new URI(file).toURL(), getPrefix(index), this.subdir); + } catch (IOException | URISyntaxException e) { LOGGER.error("[!] Exception while loading/parsing " + this.url, e); } }