From 577e848c0cee8f6203b43da267e517206c68f484 Mon Sep 17 00:00:00 2001 From: Tush-r Date: Mon, 9 Sep 2024 20:14:50 +0530 Subject: [PATCH] Remove unsupported series of images for imgur ripper --- .../ripme/ripper/rippers/ImgurRipper.java | 49 ------------------- .../com/rarchives/ripme/utils/RipUtils.java | 16 +----- .../tst/ripper/rippers/ImgurRipperTest.java | 2 + 3 files changed, 4 insertions(+), 63 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/ImgurRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/ImgurRipper.java index 95dbcf38..626133ea 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/ImgurRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/ImgurRipper.java @@ -42,7 +42,6 @@ public class ImgurRipper extends AbstractHTMLRipper { USER_ALBUM, USER_IMAGES, SINGLE_IMAGE, - SERIES_OF_IMAGES, SUBREDDIT } @@ -182,10 +181,6 @@ public class ImgurRipper extends AbstractHTMLRipper { // as it seems to cause the album to be downloaded to a subdir. ripAlbum(this.url); break; - case SERIES_OF_IMAGES: - LOGGER.info("Album type is SERIES_OF_IMAGES"); - ripAlbum(this.url); - break; case SINGLE_IMAGE: LOGGER.info("Album type is SINGLE_IMAGE"); ripSingleImage(this.url); @@ -250,39 +245,6 @@ public class ImgurRipper extends AbstractHTMLRipper { } } - public static ImgurAlbum getImgurSeries(URL url) throws IOException { - Pattern p = Pattern.compile("^.*imgur\\.com/([a-zA-Z0-9,]*).*$"); - Matcher m = p.matcher(url.toExternalForm()); - ImgurAlbum album = new ImgurAlbum(url); - if (m.matches()) { - String[] imageIds = m.group(1).split(","); - for (String imageId : imageIds) { - // TODO: Fetch image with ID imageId - LOGGER.debug("Fetching image info for ID " + imageId); - try { - JSONObject json = Http.url("https://api.imgur.com/2/image/" + imageId + ".json").getJSON(); - if (!json.has("image")) { - continue; - } - JSONObject image = json.getJSONObject("image"); - if (!image.has("links")) { - continue; - } - JSONObject links = image.getJSONObject("links"); - if (!links.has("original")) { - continue; - } - String original = links.getString("original"); - ImgurImage theImage = new ImgurImage(new URI(original).toURL()); - album.addImage(theImage); - } catch (Exception e) { - LOGGER.error("Got exception while fetching imgur ID " + imageId, e); - } - } - } - return album; - } - public static ImgurAlbum getImgurAlbum(URL url) throws IOException, URISyntaxException { String strUrl = url.toExternalForm(); if (!strUrl.contains(",")) { @@ -563,17 +525,6 @@ public class ImgurRipper extends AbstractHTMLRipper { albumType = ALBUM_TYPE.SINGLE_IMAGE; return m.group(m.groupCount()); } - p = Pattern.compile("^https?://(i\\.|www\\.|m\\.)?imgur\\.com/([a-zA-Z0-9,]{5,}).*$"); - m = p.matcher(url.toExternalForm()); - if (m.matches()) { - // Series of imgur images - albumType = ALBUM_TYPE.SERIES_OF_IMAGES; - String gid = m.group(m.groupCount()); - if (!gid.contains(",")) { - throw new MalformedURLException("Imgur image doesn't contain commas"); - } - return gid.replaceAll(",", "-"); - } throw new MalformedURLException("Unsupported imgur URL format: " + url.toExternalForm()); } diff --git a/src/main/java/com/rarchives/ripme/utils/RipUtils.java b/src/main/java/com/rarchives/ripme/utils/RipUtils.java index 8067cd92..15e4128f 100644 --- a/src/main/java/com/rarchives/ripme/utils/RipUtils.java +++ b/src/main/java/com/rarchives/ripme/utils/RipUtils.java @@ -45,20 +45,8 @@ public class RipUtils { logger.error("[!] Exception while loading album " + url, e); } return result; - } - else if (url.getHost().endsWith("imgur.com") && url.toExternalForm().contains(",")) { - // Imgur image series. - try { - logger.debug("Fetching imgur series at " + url); - ImgurRipper.ImgurAlbum imgurAlbum = ImgurRipper.getImgurSeries(url); - for (ImgurRipper.ImgurImage imgurImage : imgurAlbum.images) { - logger.debug("Got imgur image: " + imgurImage.url); - result.add(imgurImage.url); - } - } catch (IOException e) { - logger.error("[!] Exception while loading album " + url, e); - } - } else if (url.getHost().endsWith("i.imgur.com") && url.toExternalForm().contains("gifv")) { + } + else if (url.getHost().endsWith("i.imgur.com") && url.toExternalForm().contains("gifv")) { // links to imgur gifvs try { result.add(new URI(url.toExternalForm().replaceAll(".gifv", ".mp4")).toURL()); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgurRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgurRipperTest.java index 5eeb077f..6e1c3714 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgurRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgurRipperTest.java @@ -27,6 +27,8 @@ public class ImgurRipperTest extends RippersTest { failURLs.add(new URI("http://i.imgur.com/").toURL()); failURLs.add(new URI("http://imgur.com/image.jpg").toURL()); failURLs.add(new URI("http://i.imgur.com/image.jpg").toURL()); + // Imgur seems not to support URLs with lists of images anymore. + failURLs.add(new URI("http://imgur.com/758qD43,C6iVJex,bP7flAu,J3l85Ri,1U7fhu5,MbuAUCM,JF4vOXQ").toURL()); for (URL url : failURLs) { try { new ImgurRipper(url);