From a63b91f01aa920afc8c8d04189012964e3915676 Mon Sep 17 00:00:00 2001 From: Sayanjit Mukherjee Date: Thu, 23 Jan 2025 23:56:43 +0530 Subject: [PATCH 01/13] Just a few minor changes here and there --- .../ripme/ripper/rippers/CfakeRipper.java | 1 + .../ripme/ripper/rippers/ErofusRipper.java | 1 + .../ripper/rippers/HentaiNexusRipper.java | 2 ++ .../ripme/ripper/rippers/ImagebamRipper.java | 1 + .../ripme/ripper/rippers/ImagefapRipper.java | 2 +- .../ripme/ripper/rippers/ImgboxRipper.java | 1 - .../ripme/ripper/rippers/KingcomixRipper.java | 1 - .../ripme/ripper/rippers/PawooRipper.java | 5 ---- .../ripme/ripper/rippers/PorncomixRipper.java | 2 +- .../ripper/rippers/PorncomixinfoRipper.java | 2 +- .../ripme/ripper/rippers/RedditRipper.java | 24 +++++++++++++++++-- .../com/rarchives/ripme/ui/MainWindow.java | 12 +++++----- .../java/com/rarchives/ripme/utils/Http.java | 2 +- .../ripper/rippers/DeviantartRipperTest.java | 7 ------ 14 files changed, 37 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java index 7ccf558c..a217944d 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java @@ -50,6 +50,7 @@ public class CfakeRipper extends AbstractHTMLRipper { @Override public Document getNextPage(Document doc) throws IOException { // Find next page + @SuppressWarnings("unused") String nextUrl = ""; // We use comic-nav-next to the find the next page Element elem = doc.select("td > div.next > a").first(); diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java index fe063ad8..715f1eb5 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java @@ -59,6 +59,7 @@ public class ErofusRipper extends AbstractHTMLRipper { public List getURLsFromPage(Document page) { logger.info(page); List imageURLs = new ArrayList<>(); + @SuppressWarnings("unused") int x = 1; if (pageContainsImages(page)) { logger.info("Page contains images"); diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java index 4d28f7a2..70f26b3e 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java @@ -110,6 +110,7 @@ public class HentaiNexusRipper extends AbstractJSONRipper { return ""; } + @SuppressWarnings("unchecked") public String decodeJsonString(String jsonEncodedString) { /* @@ -120,6 +121,7 @@ public class HentaiNexusRipper extends AbstractJSONRipper { byte[] jsonBytes = Base64.getDecoder().decode(jsonEncodedString); + @SuppressWarnings("rawtypes") ArrayList unknownArray = new ArrayList(); ArrayList indexesToUse = new ArrayList<>(); diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java index a4155b62..c137e5f8 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java @@ -143,6 +143,7 @@ public class ImagebamRipper extends AbstractHTMLRipper { .get(); // Find image + @SuppressWarnings("unused") Elements metaTags = doc.getElementsByTag("meta"); String imgsrc = "";//initialize, so no NullPointerExceptions should ever happen. diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ImagefapRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ImagefapRipper.java index 0f94e7c4..375ea06c 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ImagefapRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ImagefapRipper.java @@ -308,7 +308,7 @@ public class ImagefapRipper extends AbstractHTMLRipper { } else if(duration / 1000 < 300){ logger.debug("Rate limit: " + (rateLimitFiveMinutes - callsMade) + " calls remaining for first 5 minute mark."); } else if(duration / 1000 < 3600){ - logger.debug("Rate limit: " + (RATE_LIMIT_HOUR - callsMade) + " calls remaining for first hour mark."); + logger.debug("Rate limit: " + (rateLimitHour - callsMade) + " calls remaining for first hour mark."); } return duration; diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ImgboxRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ImgboxRipper.java index b32fcad4..db2e8d96 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ImgboxRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ImgboxRipper.java @@ -12,7 +12,6 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Http; public class ImgboxRipper extends AbstractHTMLRipper { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/KingcomixRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/KingcomixRipper.java index bb8194bc..9c1a61d6 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/KingcomixRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/KingcomixRipper.java @@ -12,7 +12,6 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Http; public class KingcomixRipper extends AbstractHTMLRipper { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PawooRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PawooRipper.java index 100068ed..eac0d514 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PawooRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PawooRipper.java @@ -3,11 +3,6 @@ package com.rarchives.ripme.ripper.rippers; import java.io.IOException; import java.net.URL; -import com.rarchives.ripme.utils.Http; - -import org.jsoup.nodes.Document; -import org.jsoup.select.Elements; - public class PawooRipper extends MastodonRipper { public PawooRipper(URL url) throws IOException { super(url); diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java index f021269f..ac684af7 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java @@ -12,7 +12,7 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Http; +//import com.rarchives.ripme.utils.Http; public class PorncomixRipper extends AbstractHTMLRipper { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java index 8aef59a6..5e6c9ce5 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java @@ -44,7 +44,7 @@ public class PorncomixinfoRipper extends AbstractHTMLRipper { @Override public Document getNextPage(Document doc) throws IOException { // Find next page - String nextUrl = ""; + // String nextUrl = ""; // We use comic-nav-next to the find the next page Element elem = doc.select("a.next_page").first(); if (elem == null) { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java index 2419cd03..c937075e 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java @@ -15,6 +15,7 @@ import static j2html.TagCreator.title; import java.io.IOException; import java.io.OutputStream; +import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; @@ -33,8 +34,9 @@ import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; -import com.rarchives.ripme.ripper.AlbumRipper; +import com.rarchives.ripme.ripper.AbstractHTMLRipper; import com.rarchives.ripme.ui.RipStatusMessage; import com.rarchives.ripme.ui.UpdateUtils; import com.rarchives.ripme.utils.Http; @@ -45,7 +47,7 @@ import j2html.TagCreator; import j2html.tags.ContainerTag; import j2html.tags.specialized.DivTag; -public class RedditRipper extends AlbumRipper { +public class RedditRipper extends AbstractHTMLRipper{ private static final Logger logger = LogManager.getLogger(RedditRipper.class); @@ -532,4 +534,22 @@ public class RedditRipper extends AlbumRipper { private static final String HTML_STYLING = " .author { font-weight: bold; } .op { color: blue; } .comment { border: 0px; margin: 0 0 25px; padding-left: 5px; } .child { margin: 2px 0 0 20px; border-left: 2px dashed #AAF; } .collapsed { background: darkgrey; margin-bottom: 0; } .collapsed > div { display: none; } .md { max-width: 840px; padding-right: 1em; } h1 { margin: 0; } body { position: relative; background-color: #eeeeec; color: #00000a; font-weight: 400; font-style: normal; font-variant: normal; font-family: Helvetica,Arial,sans-serif; line-height: 1.4 } blockquote { margin: 5px 5px 5px 15px; padding: 1px 1px 1px 15px; max-width: 60em; border: 1px solid #ccc; border-width: 0 0 0 1px; } pre { white-space: pre-wrap; } img, video { max-width: 60vw; max-height: 90vh; object-fit: contain; } .thing { overflow: hidden; margin: 0 5px 3px 40px; border: 1px solid #e0e0e0; background-color: #fcfcfb; } :target > .md { border: 5px solid blue; } .post { margin-bottom: 20px; margin-top: 20px; } .gold { background: goldenrod; } .silver { background: silver; } .platinum { background: aqua; } .deleted { background: #faa; } .md.deleted { background: inherit; border: 5px solid #faa; } .oppost { background-color: #EEF; } blockquote > p { margin: 0; } #related { max-height: 20em; overflow-y: scroll; background-color: #F4FFF4; } #related h3 { position: sticky; top: 0; background-color: white; } .flex { display: flex; flex-flow: wrap; flex-direction: row-reverse; justify-content: flex-end; } "; private static final String HTML_SCRIPT = "document.addEventListener('mousedown', function(e) { var t = e.target; if (t.className == 'author') { t = t.parentElement; } if (t.classList.contains('comment')) { t.classList.toggle('collapsed'); e.preventDefault(); e.stopPropagation(); return false; } });"; + @Override + protected String getDomain() { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getDomain'"); + } + + @Override + protected List getURLsFromPage(Document page) throws UnsupportedEncodingException, URISyntaxException { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'getURLsFromPage'"); + } + + @Override + protected void downloadURL(URL url, int index) { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'downloadURL'"); + } + } diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java index 8fb90a39..4fb39699 100644 --- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java +++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java @@ -146,7 +146,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { } private static void addCheckboxListener(JCheckBox checkBox, String configString) { - checkBox.addActionListener(arg0 -> { + checkBox.addActionListener(_ -> { Utils.setConfigBoolean(configString, checkBox.isSelected()); Utils.configureLogger(); }); @@ -798,7 +798,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { } }); - stopButton.addActionListener(event -> { + stopButton.addActionListener(_ -> { if (ripper != null) { ripper.stop(); isRipping = false; @@ -880,7 +880,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { pack(); }); - historyButtonRemove.addActionListener(event -> { + historyButtonRemove.addActionListener(_ -> { int[] indices = historyTable.getSelectedRows(); for (int i = indices.length - 1; i >= 0; i--) { int modelIndex = historyTable.convertRowIndexToModel(indices[i]); @@ -894,7 +894,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { saveHistory(); }); - historyButtonClear.addActionListener(event -> { + historyButtonClear.addActionListener(_ -> { if (Utils.getConfigBoolean("history.warn_before_delete", true)) { JPanel checkChoise = new JPanel(); @@ -912,8 +912,8 @@ public final class MainWindow implements Runnable, RipStatusHandler { frame.setSize(405, 70); frame.setVisible(true); frame.setLocationRelativeTo(null); - noButton.addActionListener(e -> frame.setVisible(false)); - yesButton.addActionListener(ed -> { + noButton.addActionListener(_ -> frame.setVisible(false)); + yesButton.addActionListener(_ -> { frame.setVisible(false); Utils.clearURLHistory(); HISTORY.clear(); diff --git a/src/main/java/com/rarchives/ripme/utils/Http.java b/src/main/java/com/rarchives/ripme/utils/Http.java index a1705f5a..6d37255c 100644 --- a/src/main/java/com/rarchives/ripme/utils/Http.java +++ b/src/main/java/com/rarchives/ripme/utils/Http.java @@ -252,7 +252,7 @@ public class Http { SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory()); - HostnameVerifier allHostsValid = (hostname, session) -> true; + HostnameVerifier allHostsValid = (_, _) -> true; HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); } catch (Exception e) { logger.error("ignoreSSLVerification() failed."); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java index 0eab5861..1a23c4ae 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java @@ -8,8 +8,6 @@ import java.util.ArrayList; import java.util.List; import com.rarchives.ripme.ripper.rippers.DeviantartRipper; -import com.rarchives.ripme.utils.Http; -import org.jsoup.nodes.Document; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @@ -50,11 +48,6 @@ public class DeviantartRipperTest extends RippersTest { @Disabled("Broken ripper") public void testGetGalleryIDAndUsername() throws IOException, URISyntaxException { URL url = new URI("https://www.deviantart.com/airgee/gallery/").toURL(); - DeviantartRipper ripper = new DeviantartRipper(url); - Document doc = Http.url(url).get(); - // Had to comment because of refactoring/style change - // assertEquals("airgee", ripper.getUsername(doc)); - // assertEquals("714589", ripper.getGalleryID(doc)); } @Test From 67ea64ca1bd9ad2af200d8fd5df68eb1a62d7133 Mon Sep 17 00:00:00 2001 From: Sayanjit Mukherjee Date: Sun, 26 Jan 2025 00:44:53 +0530 Subject: [PATCH 02/13] Removed 'nexturl' variable , and removed unnecessary imports(unused ones) --- .../com/rarchives/ripme/ripper/rippers/PorncomixRipper.java | 4 +++- .../rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java | 2 +- .../com/rarchives/ripme/ripper/rippers/PornpicsRipper.java | 1 - .../com/rarchives/ripme/ripper/rippers/ReadcomicRipper.java | 3 --- .../java/com/rarchives/ripme/ripper/rippers/XcartxRipper.java | 1 - .../com/rarchives/ripme/ripper/rippers/YoupornRipper.java | 3 --- .../java/com/rarchives/ripme/ripper/rippers/YuvutuRipper.java | 1 - 7 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java index ac684af7..11b87afa 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java @@ -12,7 +12,9 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -//import com.rarchives.ripme.utils.Http; +//import com.rarchives.ripme.utils.Http; + + public class PorncomixRipper extends AbstractHTMLRipper { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java index 5e6c9ce5..4526d401 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java @@ -44,7 +44,7 @@ public class PorncomixinfoRipper extends AbstractHTMLRipper { @Override public Document getNextPage(Document doc) throws IOException { // Find next page - // String nextUrl = ""; + // We use comic-nav-next to the find the next page Element elem = doc.select("a.next_page").first(); if (elem == null) { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PornpicsRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PornpicsRipper.java index 799f7294..fcfcd437 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PornpicsRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PornpicsRipper.java @@ -1,7 +1,6 @@ package com.rarchives.ripme.ripper.rippers; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Http; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ReadcomicRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ReadcomicRipper.java index 55b3559a..78c9a4a4 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ReadcomicRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ReadcomicRipper.java @@ -11,9 +11,6 @@ import java.util.regex.Pattern; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; -import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Http; - public class ReadcomicRipper extends ViewcomicRipper { public ReadcomicRipper(URL url) throws IOException { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/XcartxRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/XcartxRipper.java index 0b616726..bbf9ef5b 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/XcartxRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/XcartxRipper.java @@ -1,7 +1,6 @@ package com.rarchives.ripme.ripper.rippers; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Http; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/YoupornRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/YoupornRipper.java index b3e5f4f0..590eade1 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/YoupornRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/YoupornRipper.java @@ -13,9 +13,6 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; -import com.rarchives.ripme.ripper.VideoRipper; -import com.rarchives.ripme.utils.Http; - public class YoupornRipper extends AbstractSingleFileRipper { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/YuvutuRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/YuvutuRipper.java index 1fe6513f..53683f1d 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/YuvutuRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/YuvutuRipper.java @@ -12,7 +12,6 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -import com.rarchives.ripme.utils.Http; public class YuvutuRipper extends AbstractHTMLRipper { From 94e8086daaee3caa3b52cffbaf1fc43aeeab758e Mon Sep 17 00:00:00 2001 From: Sayanjit Mukherjee Date: Tue, 28 Jan 2025 07:12:12 +0000 Subject: [PATCH 03/13] Reverted back some code and removed unnecessary changes --- .../java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java | 5 ++--- .../com/rarchives/ripme/ripper/rippers/ErofusRipper.java | 4 ++-- .../com/rarchives/ripme/ripper/rippers/PorncomixRipper.java | 2 +- .../rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java | 2 +- .../ripme/tst/ripper/rippers/DeviantartRipperTest.java | 5 +++++ 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java index a217944d..d36019a7 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java @@ -49,9 +49,8 @@ public class CfakeRipper extends AbstractHTMLRipper { @Override public Document getNextPage(Document doc) throws IOException { - // Find next page - @SuppressWarnings("unused") - String nextUrl = ""; + + // We use comic-nav-next to the find the next page Element elem = doc.select("td > div.next > a").first(); if (elem == null) { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java index 715f1eb5..201983be 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java @@ -59,8 +59,8 @@ public class ErofusRipper extends AbstractHTMLRipper { public List getURLsFromPage(Document page) { logger.info(page); List imageURLs = new ArrayList<>(); - @SuppressWarnings("unused") - int x = 1; + + if (pageContainsImages(page)) { logger.info("Page contains images"); ripAlbum(page); diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java index 11b87afa..82aa7cd9 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java @@ -12,7 +12,7 @@ import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import com.rarchives.ripme.ripper.AbstractHTMLRipper; -//import com.rarchives.ripme.utils.Http; + diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java index 4526d401..3f75a73a 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java @@ -43,7 +43,7 @@ public class PorncomixinfoRipper extends AbstractHTMLRipper { @Override public Document getNextPage(Document doc) throws IOException { - // Find next page + // We use comic-nav-next to the find the next page Element elem = doc.select("a.next_page").first(); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java index 1a23c4ae..81e6f831 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java @@ -48,6 +48,11 @@ public class DeviantartRipperTest extends RippersTest { @Disabled("Broken ripper") public void testGetGalleryIDAndUsername() throws IOException, URISyntaxException { URL url = new URI("https://www.deviantart.com/airgee/gallery/").toURL(); + DeviantartRipper ripper = new DeviantartRipper(url); + Document doc = Http.url(url).get(); + // Had to comment because of refactoring/style change + // assertEquals("airgee", ripper.getUsername(doc)); + // assertEquals("714589", ripper.getGalleryID(doc)); } @Test From 2ae74fd2020e6acf4d198ea2256057142dfb88dc Mon Sep 17 00:00:00 2001 From: metaprime Date: Sat, 1 Feb 2025 23:24:53 -0800 Subject: [PATCH 04/13] Update CfakeRipper.java --- .../java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java index d36019a7..4372883e 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/CfakeRipper.java @@ -49,8 +49,6 @@ public class CfakeRipper extends AbstractHTMLRipper { @Override public Document getNextPage(Document doc) throws IOException { - - // We use comic-nav-next to the find the next page Element elem = doc.select("td > div.next > a").first(); if (elem == null) { From baf7f93ff65110e163ae74825f9fbc4f73c0b3e1 Mon Sep 17 00:00:00 2001 From: metaprime Date: Sat, 1 Feb 2025 23:25:29 -0800 Subject: [PATCH 05/13] Update ErofusRipper.java --- .../java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java index 201983be..7ae9495e 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java @@ -59,8 +59,7 @@ public class ErofusRipper extends AbstractHTMLRipper { public List getURLsFromPage(Document page) { logger.info(page); List imageURLs = new ArrayList<>(); - - + if (pageContainsImages(page)) { logger.info("Page contains images"); ripAlbum(page); @@ -84,7 +83,6 @@ public class ErofusRipper extends AbstractHTMLRipper { } } - return imageURLs; } From a7105ce1e34820a8278e0319d134ed8f1653bcbf Mon Sep 17 00:00:00 2001 From: metaprime Date: Sat, 1 Feb 2025 23:28:10 -0800 Subject: [PATCH 06/13] Update PorncomixRipper.java --- .../com/rarchives/ripme/ripper/rippers/PorncomixRipper.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java index 82aa7cd9..0e35b3a6 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixRipper.java @@ -13,9 +13,6 @@ import org.jsoup.nodes.Element; import com.rarchives.ripme.ripper.AbstractHTMLRipper; - - - public class PorncomixRipper extends AbstractHTMLRipper { public PorncomixRipper(URL url) throws IOException { From 5685ef49080326031025d836322f6aa2c04dddf8 Mon Sep 17 00:00:00 2001 From: metaprime Date: Sat, 1 Feb 2025 23:30:00 -0800 Subject: [PATCH 07/13] Update ErofusRipper.java --- .../java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java index 7ae9495e..490f3977 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ErofusRipper.java @@ -59,7 +59,6 @@ public class ErofusRipper extends AbstractHTMLRipper { public List getURLsFromPage(Document page) { logger.info(page); List imageURLs = new ArrayList<>(); - if (pageContainsImages(page)) { logger.info("Page contains images"); ripAlbum(page); From 2f65bc4e009f36df7dc7a7f3151174dee88b3d68 Mon Sep 17 00:00:00 2001 From: metaprime Date: Sat, 1 Feb 2025 23:30:29 -0800 Subject: [PATCH 08/13] Update PorncomixinfoRipper.java --- .../com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java index 3f75a73a..c6e956dc 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/PorncomixinfoRipper.java @@ -43,8 +43,6 @@ public class PorncomixinfoRipper extends AbstractHTMLRipper { @Override public Document getNextPage(Document doc) throws IOException { - - // We use comic-nav-next to the find the next page Element elem = doc.select("a.next_page").first(); if (elem == null) { From 7f1514c1cc7acdd11719a38de9420194662efa66 Mon Sep 17 00:00:00 2001 From: MetaPrime Date: Sat, 1 Feb 2025 23:44:49 -0800 Subject: [PATCH 09/13] Revert change from AlbumRipper to AbstractHTMLRipper in RedditRipper.java --- .../ripme/ripper/rippers/RedditRipper.java | 24 ++----------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java index c937075e..2419cd03 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/RedditRipper.java @@ -15,7 +15,6 @@ import static j2html.TagCreator.title; import java.io.IOException; import java.io.OutputStream; -import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; @@ -34,9 +33,8 @@ import org.json.JSONException; import org.json.JSONObject; import org.json.JSONTokener; import org.jsoup.Jsoup; -import org.jsoup.nodes.Document; -import com.rarchives.ripme.ripper.AbstractHTMLRipper; +import com.rarchives.ripme.ripper.AlbumRipper; import com.rarchives.ripme.ui.RipStatusMessage; import com.rarchives.ripme.ui.UpdateUtils; import com.rarchives.ripme.utils.Http; @@ -47,7 +45,7 @@ import j2html.TagCreator; import j2html.tags.ContainerTag; import j2html.tags.specialized.DivTag; -public class RedditRipper extends AbstractHTMLRipper{ +public class RedditRipper extends AlbumRipper { private static final Logger logger = LogManager.getLogger(RedditRipper.class); @@ -534,22 +532,4 @@ public class RedditRipper extends AbstractHTMLRipper{ private static final String HTML_STYLING = " .author { font-weight: bold; } .op { color: blue; } .comment { border: 0px; margin: 0 0 25px; padding-left: 5px; } .child { margin: 2px 0 0 20px; border-left: 2px dashed #AAF; } .collapsed { background: darkgrey; margin-bottom: 0; } .collapsed > div { display: none; } .md { max-width: 840px; padding-right: 1em; } h1 { margin: 0; } body { position: relative; background-color: #eeeeec; color: #00000a; font-weight: 400; font-style: normal; font-variant: normal; font-family: Helvetica,Arial,sans-serif; line-height: 1.4 } blockquote { margin: 5px 5px 5px 15px; padding: 1px 1px 1px 15px; max-width: 60em; border: 1px solid #ccc; border-width: 0 0 0 1px; } pre { white-space: pre-wrap; } img, video { max-width: 60vw; max-height: 90vh; object-fit: contain; } .thing { overflow: hidden; margin: 0 5px 3px 40px; border: 1px solid #e0e0e0; background-color: #fcfcfb; } :target > .md { border: 5px solid blue; } .post { margin-bottom: 20px; margin-top: 20px; } .gold { background: goldenrod; } .silver { background: silver; } .platinum { background: aqua; } .deleted { background: #faa; } .md.deleted { background: inherit; border: 5px solid #faa; } .oppost { background-color: #EEF; } blockquote > p { margin: 0; } #related { max-height: 20em; overflow-y: scroll; background-color: #F4FFF4; } #related h3 { position: sticky; top: 0; background-color: white; } .flex { display: flex; flex-flow: wrap; flex-direction: row-reverse; justify-content: flex-end; } "; private static final String HTML_SCRIPT = "document.addEventListener('mousedown', function(e) { var t = e.target; if (t.className == 'author') { t = t.parentElement; } if (t.classList.contains('comment')) { t.classList.toggle('collapsed'); e.preventDefault(); e.stopPropagation(); return false; } });"; - @Override - protected String getDomain() { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'getDomain'"); - } - - @Override - protected List getURLsFromPage(Document page) throws UnsupportedEncodingException, URISyntaxException { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'getURLsFromPage'"); - } - - @Override - protected void downloadURL(URL url, int index) { - // TODO Auto-generated method stub - throw new UnsupportedOperationException("Unimplemented method 'downloadURL'"); - } - } From e0dfead88c9882f4210eaa1083a8363ebe6a61c2 Mon Sep 17 00:00:00 2001 From: MetaPrime Date: Sat, 1 Feb 2025 23:50:47 -0800 Subject: [PATCH 10/13] Fix unchecked types warnings in HentaiNexusRipper.java --- .../ripme/ripper/rippers/HentaiNexusRipper.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java index 70f26b3e..89011cf0 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/HentaiNexusRipper.java @@ -60,7 +60,6 @@ public class HentaiNexusRipper extends AbstractJSONRipper { addURLToDownload(url, getPrefix(index)); } - @Override protected List getURLsFromJSON(JSONObject json) throws JSONException { @@ -110,7 +109,6 @@ public class HentaiNexusRipper extends AbstractJSONRipper { return ""; } - @SuppressWarnings("unchecked") public String decodeJsonString(String jsonEncodedString) { /* @@ -121,8 +119,7 @@ public class HentaiNexusRipper extends AbstractJSONRipper { byte[] jsonBytes = Base64.getDecoder().decode(jsonEncodedString); - @SuppressWarnings("rawtypes") - ArrayList unknownArray = new ArrayList(); + ArrayList unknownArray = new ArrayList<>(); ArrayList indexesToUse = new ArrayList<>(); for (int i = 0x2; unknownArray.size() < 0x10; ++i) { @@ -178,9 +175,7 @@ public class HentaiNexusRipper extends AbstractJSONRipper { return decodedJsonString; } - private static long signedToUnsigned(int signed) { return (byte) signed & 0xFF; } - -} \ No newline at end of file +} From bf485af30e8cc6def33865adb57f524faada929a Mon Sep 17 00:00:00 2001 From: MetaPrime Date: Sat, 1 Feb 2025 23:52:12 -0800 Subject: [PATCH 11/13] Fix unused warning in ImagebamRipper.java --- .../com/rarchives/ripme/ripper/rippers/ImagebamRipper.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java index c137e5f8..d3e5b2ce 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ImagebamRipper.java @@ -143,9 +143,6 @@ public class ImagebamRipper extends AbstractHTMLRipper { .get(); // Find image - @SuppressWarnings("unused") - Elements metaTags = doc.getElementsByTag("meta"); - String imgsrc = "";//initialize, so no NullPointerExceptions should ever happen. Elements elem = doc.select("img[class*=main-image]"); if ((elem != null) && (elem.size() > 0)) { From 2c25eaa3ef70b8a1113fb6462fb3891b9eef92d6 Mon Sep 17 00:00:00 2001 From: MetaPrime Date: Sat, 1 Feb 2025 23:55:02 -0800 Subject: [PATCH 12/13] Revert changes that use unnamed variables, which are a preview feature --- src/main/java/com/rarchives/ripme/ui/MainWindow.java | 12 ++++++------ src/main/java/com/rarchives/ripme/utils/Http.java | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java index 4fb39699..8fb90a39 100644 --- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java +++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java @@ -146,7 +146,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { } private static void addCheckboxListener(JCheckBox checkBox, String configString) { - checkBox.addActionListener(_ -> { + checkBox.addActionListener(arg0 -> { Utils.setConfigBoolean(configString, checkBox.isSelected()); Utils.configureLogger(); }); @@ -798,7 +798,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { } }); - stopButton.addActionListener(_ -> { + stopButton.addActionListener(event -> { if (ripper != null) { ripper.stop(); isRipping = false; @@ -880,7 +880,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { pack(); }); - historyButtonRemove.addActionListener(_ -> { + historyButtonRemove.addActionListener(event -> { int[] indices = historyTable.getSelectedRows(); for (int i = indices.length - 1; i >= 0; i--) { int modelIndex = historyTable.convertRowIndexToModel(indices[i]); @@ -894,7 +894,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { saveHistory(); }); - historyButtonClear.addActionListener(_ -> { + historyButtonClear.addActionListener(event -> { if (Utils.getConfigBoolean("history.warn_before_delete", true)) { JPanel checkChoise = new JPanel(); @@ -912,8 +912,8 @@ public final class MainWindow implements Runnable, RipStatusHandler { frame.setSize(405, 70); frame.setVisible(true); frame.setLocationRelativeTo(null); - noButton.addActionListener(_ -> frame.setVisible(false)); - yesButton.addActionListener(_ -> { + noButton.addActionListener(e -> frame.setVisible(false)); + yesButton.addActionListener(ed -> { frame.setVisible(false); Utils.clearURLHistory(); HISTORY.clear(); diff --git a/src/main/java/com/rarchives/ripme/utils/Http.java b/src/main/java/com/rarchives/ripme/utils/Http.java index 6d37255c..a1705f5a 100644 --- a/src/main/java/com/rarchives/ripme/utils/Http.java +++ b/src/main/java/com/rarchives/ripme/utils/Http.java @@ -252,7 +252,7 @@ public class Http { SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustAllCerts, new SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory()); - HostnameVerifier allHostsValid = (_, _) -> true; + HostnameVerifier allHostsValid = (hostname, session) -> true; HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); } catch (Exception e) { logger.error("ignoreSSLVerification() failed."); From 25969c1d6e5ae8d4d5b98d47a8bf19bc461a5c44 Mon Sep 17 00:00:00 2001 From: MetaPrime Date: Sat, 1 Feb 2025 23:58:28 -0800 Subject: [PATCH 13/13] Revert broken changes to DeviantartRipperTest.java --- .../ripme/tst/ripper/rippers/DeviantartRipperTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java index 81e6f831..0eab5861 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DeviantartRipperTest.java @@ -8,6 +8,8 @@ import java.util.ArrayList; import java.util.List; import com.rarchives.ripme.ripper.rippers.DeviantartRipper; +import com.rarchives.ripme.utils.Http; +import org.jsoup.nodes.Document; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test;