From fbfd4126197bb328cd439f43131ef6a3212e43cd Mon Sep 17 00:00:00 2001 From: Felix Friebe Date: Mon, 11 Nov 2019 22:17:50 -0600 Subject: [PATCH 1/3] Fixed Myreadingmanga Ripper img-tag is not child of div.separator anymore. An a-tag separates both. This was fixed. --- .../rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java index b44a7164..af272131 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java @@ -50,7 +50,7 @@ public class MyreadingmangaRipper extends AbstractHTMLRipper { @Override public List getURLsFromPage(Document doc) { List result = new ArrayList<>(); - for (Element el : doc.select("div.separator > img")) { + for (Element el : doc.select("div.separator > a > img")) { String imageSource = el.attr("data-lazy-src"); result.add(imageSource); } From a2f9a1daa98eb2491a509d148b127d86552302db Mon Sep 17 00:00:00 2001 From: Felix Friebe Date: Mon, 11 Nov 2019 22:44:47 -0600 Subject: [PATCH 2/3] Fixed Myreadingmanga Ripper After testing some links: sometimes the div-tag doesn't have a .separator-class. Also there's sometimes a tag in between the div and img-tag and sometimes not. The CSS-selector was adjusted accordingly. --- .../rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java index af272131..20a3cf2d 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/MyreadingmangaRipper.java @@ -50,7 +50,7 @@ public class MyreadingmangaRipper extends AbstractHTMLRipper { @Override public List getURLsFromPage(Document doc) { List result = new ArrayList<>(); - for (Element el : doc.select("div.separator > a > img")) { + for (Element el : doc.select("div * img[data-lazy-src]")) { String imageSource = el.attr("data-lazy-src"); result.add(imageSource); } From 96e2e729503b4fd04744963026e56922f06e9f43 Mon Sep 17 00:00:00 2001 From: Felix Friebe Date: Mon, 11 Nov 2019 23:00:30 -0600 Subject: [PATCH 3/3] Fixed Myreadingmanga Ripper After testing some links: sometimes the div-tag doesn't have a .separator-class. Also there's sometimes a tag in between the div and img-tag and sometimes not. The CSS-selector was adjusted accordingly. --- .../ripme/ripper/rippers/MeituriRipper.java | 4 +-- .../ripme/ripper/rippers/VkRipper.java | 27 +++++++++---------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/MeituriRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/MeituriRipper.java index 67046d44..8bdd2b2f 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/MeituriRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/MeituriRipper.java @@ -70,8 +70,8 @@ public class MeituriRipper extends AbstractHTMLRipper { } } - // Base URL: https://ii.hywly.com/a/1/albumid/imgnum.jpg - String baseURL = "https://ii.hywly.com/a/1/" + albumID + "/"; + // Base URL: http://ii.hywly.com/a/1/albumid/imgnum.jpg + String baseURL = "http://ii.hywly.com/a/1/" + albumID + "/"; // Loop through and add images to the URL list for (int i = 1; i <= numOfImages; i++) { diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/VkRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/VkRipper.java index 0f75fe2f..99310dc4 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/VkRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/VkRipper.java @@ -8,7 +8,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import com.rarchives.ripme.ripper.AbstractJSONRipper; -import org.apache.commons.lang.StringEscapeUtils; import org.json.JSONArray; import org.json.JSONObject; import org.jsoup.Jsoup; @@ -63,6 +62,7 @@ public class VkRipper extends AbstractJSONRipper { Map photoIDsToURLs = new HashMap<>(); int offset = 0; while (true) { + LOGGER.info(" Retrieving " + this.url); Map postData = new HashMap<>(); postData.put("al", "1"); postData.put("offset", Integer.toString(offset)); @@ -78,7 +78,6 @@ public class VkRipper extends AbstractJSONRipper { break; } body = body.substring(body.indexOf(" elements = doc.select("a"); Set photoIDsToGet = new HashSet<>(); @@ -198,7 +197,6 @@ public class VkRipper extends AbstractJSONRipper { else { RIP_TYPE = RipType.IMAGE; } - super.rip(); } private Map getPhotoIDsToURLs(String photoID) throws IOException { @@ -219,20 +217,19 @@ public class VkRipper extends AbstractJSONRipper { .data(postData) .post(); String jsonString = doc.toString(); - jsonString = StringEscapeUtils.unescapeJavaScript(jsonString); - jsonString = jsonString.substring(jsonString.indexOf("\"pe_type\"")); - jsonString = jsonString.substring(0, jsonString.indexOf("") + "".length()); + jsonString = jsonString.substring(0, jsonString.indexOf("")); + JSONArray json = new JSONArray(jsonString); + for (int i = 0; i < json.length(); i++) { + JSONObject jsonImage = json.getJSONObject(i); + for (String key : new String[] {"z_src", "y_src", "x_src"}) { + if (!jsonImage.has(key)) { + continue; + } + photoIDsToURLs.put(jsonImage.getString("id"), jsonImage.getString(key)); + break; } - photoIDsToURLs.put(photoID, json.getString(key)); - break; } - return photoIDsToURLs; }