From ac6cbf81acbff2a5c5b64b13ddff85fda74cde2f Mon Sep 17 00:00:00 2001 From: MetaPrime Date: Sun, 5 Jan 2025 01:19:55 -0800 Subject: [PATCH] Remove HBrowseRipper - hbrowse.com permanently offline --- .../ripme/ripper/rippers/HbrowseRipper.java | 79 ------------------- .../tst/ripper/rippers/HbrowseRipperTest.java | 18 ----- 2 files changed, 97 deletions(-) delete mode 100644 src/main/java/com/rarchives/ripme/ripper/rippers/HbrowseRipper.java delete mode 100644 src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/HbrowseRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/HbrowseRipper.java deleted file mode 100644 index 040ca978..00000000 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/HbrowseRipper.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.rarchives.ripme.ripper.rippers; - -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URISyntaxException; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Matcher; -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 HbrowseRipper extends AbstractHTMLRipper { - - public HbrowseRipper(URL url) throws IOException { - super(url); - } - - @Override - public String getHost() { - return "hbrowse"; - } - - @Override - public String getDomain() { - return "hbrowse.com"; - } - - @Override - public String getGID(URL url) throws MalformedURLException { - Pattern p = Pattern.compile("https?://www.hbrowse.com/(\\d+)/[a-zA-Z0-9]*"); - Matcher m = p.matcher(url.toExternalForm()); - if (m.matches()) { - return m.group(1); - } - throw new MalformedURLException("Expected hbrowse.com URL format: " + - "hbrowse.com/ID/COMICID - got " + url + " instead"); - } - - @Override - public Document getFirstPage() throws IOException { - // "url" is an instance field of the superclass - Document tempDoc = Http.url(url).get(); - return Http.url("https://www.hbrowse.com" + tempDoc.select("td[id=pageTopHome] > a[title=view thumbnails (top)]").attr("href")).get(); - } - - @Override - public String getAlbumTitle(URL url) throws MalformedURLException, URISyntaxException { - try { - Document doc = getCachedFirstPage(); - String title = doc.select("div[id=main] > table.listTable > tbody > tr > td.listLong").first().text(); - return getHost() + "_" + title + "_" + getGID(url); - } catch (Exception e) { - // Fall back to default album naming convention - LOGGER.warn("Failed to get album title from " + url, e); - } - return super.getAlbumTitle(url); - } - - @Override - public List getURLsFromPage(Document doc) { - List result = new ArrayList(); - for (Element el : doc.select("table > tbody > tr > td > a > img")) { - String imageURL = el.attr("src").replace("/zzz", ""); - result.add("https://www.hbrowse.com" + imageURL); - } - return result; - } - - @Override - public void downloadURL(URL url, int index) { - addURLToDownload(url, getPrefix(index)); - } - } diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java deleted file mode 100644 index 291ac782..00000000 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.rarchives.ripme.tst.ripper.rippers; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; - -import com.rarchives.ripme.ripper.rippers.HbrowseRipper; -import org.junit.jupiter.api.Tag; -import org.junit.jupiter.api.Test; - -public class HbrowseRipperTest extends RippersTest { - @Test - @Tag("flaky") - public void testPahealRipper() throws IOException, URISyntaxException { - HbrowseRipper ripper = new HbrowseRipper(new URI("https://www.hbrowse.com/21013/c00001").toURL()); - testRipper(ripper); - } -}