From 0b261dd5d7ee6df1ccfd98bc3d5808c8ab8ec5f3 Mon Sep 17 00:00:00 2001 From: pesho1323 <147543994+pesho1323@users.noreply.github.com> Date: Tue, 17 Oct 2023 18:19:39 +0300 Subject: [PATCH] Add Multporn ripper --- .../ripme/ripper/rippers/MultpornRipper.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/main/java/com/rarchives/ripme/ripper/rippers/MultpornRipper.java diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/MultpornRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/MultpornRipper.java new file mode 100644 index 00000000..b4a0597f --- /dev/null +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/MultpornRipper.java @@ -0,0 +1,71 @@ +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; + +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; + +public class MultpornRipper extends AbstractHTMLRipper { + + public MultpornRipper(URL url) throws IOException { + super(url); + } + + @Override + protected String getDomain() { + return "multporn.net"; + } + + @Override + public String getHost() { + return "multporn"; + } + + @Override + public String getGID(URL url) throws MalformedURLException, URISyntaxException { + Pattern p = Pattern.compile("^https?://multporn\\.net/node/(\\d+).*$"); + Matcher m = p.matcher(url.toExternalForm()); + if (m.matches()) { + return m.group(1); + } + + try { + String nodeHref = Http.url(url).get().select(".simple-mode-switcher").attr("href"); + System.out.println(nodeHref); + p = Pattern.compile("/node/(\\d+)/.*"); + m = p.matcher(nodeHref); + if (m.matches()) { + this.url = new URL("https://multporn.net" + nodeHref); + return m.group(1); + } + }catch (Exception ignored){}; + + throw new MalformedURLException("Expected multporn.net URL format: " + + "multporn.net/comics/comicid / multporn.net/node/id/* - got " + url + " instead"); + } + + @Override + protected List getURLsFromPage(Document page) { + List imageURLs = new ArrayList<>(); + Elements thumbs = page.select(".mfp-gallery-image .mfp-item"); + for (Element el : thumbs) { + imageURLs.add(el.attr("href")); + } + return imageURLs; + } + + @Override + protected void downloadURL(URL url, int index) { + addURLToDownload(url, getPrefix(index), "", this.url.toExternalForm(), null); + } +} \ No newline at end of file