From d1a5057dcc6ccbe5ae94ea6b880defe0ee91c0e7 Mon Sep 17 00:00:00 2001 From: 2omsnF <58115482+2omsnF@users.noreply.github.com> Date: Sat, 24 Sep 2022 19:58:53 -0400 Subject: [PATCH] Fix video download bugs --- .../ripme/ripper/rippers/NsfwXxxRipper.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/NsfwXxxRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/NsfwXxxRipper.java index d25f453b..30da2344 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/NsfwXxxRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/NsfwXxxRipper.java @@ -2,6 +2,7 @@ package com.rarchives.ripme.ripper.rippers; import com.rarchives.ripme.ripper.AbstractJSONRipper; import com.rarchives.ripme.utils.Http; +import org.apache.commons.lang.StringEscapeUtils; import org.json.JSONArray; import org.json.JSONObject; @@ -105,7 +106,20 @@ public class NsfwXxxRipper extends AbstractJSONRipper { List data = IntStream .range(0, items.length()) .mapToObj(items::getJSONObject) - .map(o -> new ApiEntry(o.getString("src"), o.getString("author"), o.getString("title"))) + .map(o -> { + String srcUrl; + if(o.has("src")) { + srcUrl = o.getString("src"); + } else { + // video source + Pattern videoHtmlSrcPattern = Pattern.compile("src=\"([^\"]+)\""); + Matcher matches = videoHtmlSrcPattern.matcher(o.getString("html")); + matches.find(); + srcUrl = StringEscapeUtils.unescapeHtml(matches.group(1)); + } + + return new ApiEntry(srcUrl, o.getString("author"), o.getString("title")); + }) .collect(Collectors.toList()); data.forEach(e -> descriptions.add(e.title)); @@ -114,11 +128,6 @@ public class NsfwXxxRipper extends AbstractJSONRipper { @Override protected void downloadURL(URL url, int index) { - try { - Thread.sleep(1000); - } catch (InterruptedException e) { - throw new RuntimeException(e); - } addURLToDownload(url, getPrefix(index) + descriptions.get(index - 1) + "_" , "", "", null); } }