From b528f662802831976653504459ab1c5db59c0398 Mon Sep 17 00:00:00 2001 From: Kevin Jiang Date: Tue, 16 Jan 2018 17:48:27 -0500 Subject: [PATCH 1/2] Improved Docs & Code Style Fixes ^ --- .../ripme/tst/ripper/rippers/VscoRipperTest.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VscoRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VscoRipperTest.java index 15a5eeef..435c9aaa 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VscoRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VscoRipperTest.java @@ -6,12 +6,19 @@ import java.net.URL; public class VscoRipperTest extends RippersTest { - + /** + * Testing Rip. + * @throws IOException + */ public void testSingleImageRip() throws IOException{ VscoRipper ripper = new VscoRipper(new URL("https://vsco.co/minijello/media/571cd612542220261a123441")); testRipper(ripper); } + /** + * Make sure it names the folder something sensible. + * @throws IOException + */ public void testGetGID() throws IOException{ URL url = new URL("https://vsco.co/minijello/media/571cd612542220261a123441"); From ebb3485c9415d0c19c71f1cc5402388089896a2f Mon Sep 17 00:00:00 2001 From: Kevin Jiang Date: Tue, 16 Jan 2018 17:48:35 -0500 Subject: [PATCH 2/2] Improved Docs & Code Style Fixes ^ --- .../ripme/ripper/rippers/VscoRipper.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/VscoRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/VscoRipper.java index 5665ee84..00eed1f4 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/VscoRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/VscoRipper.java @@ -7,10 +7,7 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.jsoup.Jsoup; @@ -20,7 +17,7 @@ import org.jsoup.nodes.Element; import org.jsoup.select.Elements; /** - * For ripping VSCO members' pages. + * For ripping VSCO pictures. */ public class VscoRipper extends AbstractHTMLRipper{ @@ -31,6 +28,12 @@ public class VscoRipper extends AbstractHTMLRipper{ super(url); } + /** + * Checks to see if VscoRipper can Rip specified url. + * @param url + * @return True if can rip. + * False if cannot rip. + */ @Override public boolean canRip(URL url) { if (!url.getHost().endsWith(DOMAIN)) { @@ -44,7 +47,7 @@ public class VscoRipper extends AbstractHTMLRipper{ !u.contains("/feed/") || !u.contains("/login/") || !u.contains("/journal/") || - !u.contains("/collection")|| + !u.contains("/collection/")|| !u.contains("/images/") || u.contains("/media/"); @@ -57,7 +60,8 @@ public class VscoRipper extends AbstractHTMLRipper{ } /** - * Recursion FTW + *

Gets the direct URL of full-sized image through the tag.

+ * When expanding future functionality (e.g. support from journals), put everything into this method. * @param page * @return */ @@ -65,14 +69,14 @@ public class VscoRipper extends AbstractHTMLRipper{ public List getURLsFromPage(Document page){ List toRip = new ArrayList<>(); //If user wanted to rip single image - if(url.toString().contains("/media/")){ + if (url.toString().contains("/media/")){ try { toRip.add(vscoImageToURL(url.toExternalForm())); } catch (IOException ex) { logger.debug("Failed to convert " + url.toString() + " to external form."); } - }else{//want to rip a member profile + } else {//want to rip a member profile /* String baseURL = "https://vsco.co"; @@ -85,7 +89,7 @@ public class VscoRipper extends AbstractHTMLRipper{ for(Element link : links){ System.out.println(link.toString()); //if link includes "/media/", add it to the list - if(link.attr("href").contains("/media")){ + if (link.attr("href").contains("/media")) { try { String relativeURL = vscoImageToURL(link.attr("href")); toRip.add(baseURL + relativeURL); @@ -112,7 +116,7 @@ public class VscoRipper extends AbstractHTMLRipper{ for(Element metaTag : metaTags){ //find URL inside meta-tag with property of "og:image" - if(metaTag.attr("property").equals("og:image")){ + if (metaTag.attr("property").equals("og:image")){ String givenURL = metaTag.attr("content"); givenURL = givenURL.replaceAll("\\?h=[0-9]+", "");//replace the "?h=xxx" tag at the end of the URL (where each x is a number) @@ -123,7 +127,7 @@ public class VscoRipper extends AbstractHTMLRipper{ } //Means website changed, things need to be fixed. - if(result.isEmpty()){ + if (result.isEmpty()){ logger.error("Could not find image URL at: " + url); } @@ -154,7 +158,7 @@ public class VscoRipper extends AbstractHTMLRipper{ p = Pattern.compile("^https?://vsco.co/([a-zA-Z0-9]+)/images/[0-9]+"); m = p.matcher(url.toExternalForm()); - if(m.matches()){ + if (m.matches()){ String user = m.group(1); return user; }