From 3414364ce6e90a299df2521b8ab91ffa7b4bc50d Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Tue, 13 Aug 2019 19:41:16 -0400 Subject: [PATCH 01/17] Fixed Xhamster ripper; Added support xhamster2.com and xhamster.desi --- .../ripme/ripper/rippers/XhamsterRipper.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java index 2eaa5c9e..9faf5c09 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java @@ -17,7 +17,7 @@ import com.rarchives.ripme.utils.Http; // WARNING // This ripper changes all requests to use the MOBILE version of the site -// If you're chaning anything be sure to use the mobile sites html/css or you\re just wasting your time! +// If you're changing anything be sure to use the mobile sites html/css or you're just wasting your time! // WARNING public class XhamsterRipper extends AbstractHTMLRipper { @@ -45,9 +45,9 @@ public class XhamsterRipper extends AbstractHTMLRipper { @Override public URL sanitizeURL(URL url) throws MalformedURLException { String URLToReturn = url.toExternalForm(); - URLToReturn = URLToReturn.replaceAll("xhamster.one", "xhamster.com"); - URLToReturn = URLToReturn.replaceAll("m.xhamster.com", "xhamster.com"); - URLToReturn = URLToReturn.replaceAll("\\w\\w.xhamster.com", "xhamster.com"); + URLToReturn = URLToReturn.replaceAll("xhamster\\.(com|one|desi)", "xhamster.com"); + URLToReturn = URLToReturn.replaceAll("m.xhamster\\.(com|one|desi)", "xhamster.com"); + URLToReturn = URLToReturn.replaceAll("\\w\\w\\.xhamster\\.(com|one|desi)", "xhamster.com"); if (!isVideoUrl(url)) { URLToReturn = URLToReturn.replaceAll("xhamster.com", "m.xhamster.com"); } @@ -114,17 +114,17 @@ public class XhamsterRipper extends AbstractHTMLRipper { @Override public boolean canRip(URL url) { - Pattern p = Pattern.compile("^https?://([\\w\\w]*\\.)?xhamster\\.(com|one)/photos/gallery/.*?(\\d+)$"); + Pattern p = Pattern.compile("^https?://([\\w\\w]*\\.)?xhamster2?\\.(com|one|desi)/photos/gallery/.*?(\\d+)$"); Matcher m = p.matcher(url.toExternalForm()); if (m.matches()) { return true; } - p = Pattern.compile("^https?://[\\w\\w.]*xhamster\\.(com|one)/users/([a-zA-Z0-9_-]+)/(photos|videos)(/\\d+)?"); + p = Pattern.compile("^https?://[\\w\\w.]*xhamster2?\\.(com|one|desi)/users/([a-zA-Z0-9_-]+)/(photos|videos)(/\\d+)?"); m = p.matcher(url.toExternalForm()); if (m.matches()) { return true; } - p = Pattern.compile("^https?://.*xhamster\\.(com|one)/(movies|videos)/.*$"); + p = Pattern.compile("^https?://.*xhamster2?\\.(com|one|desi)/(movies|videos)/.*$"); m = p.matcher(url.toExternalForm()); if (m.matches()) { return true; @@ -133,7 +133,7 @@ public class XhamsterRipper extends AbstractHTMLRipper { } private boolean isVideoUrl(URL url) { - Pattern p = Pattern.compile("^https?://.*xhamster\\.com/(movies|videos)/.*$"); + Pattern p = Pattern.compile("^https?://.*xhamster2?\\.(com|one|desi)/(movies|videos)/.*$"); Matcher m = p.matcher(url.toExternalForm()); return m.matches(); } @@ -155,9 +155,16 @@ public class XhamsterRipper extends AbstractHTMLRipper { List result = new ArrayList<>(); if (!isVideoUrl(url)) { for (Element page : doc.select("div.items > div.item-container > a.item")) { + // Make sure we don't waste time running the loop if the ripper has been stopped + if (isStopped()) { + break; + } String pageWithImageUrl = page.attr("href"); try { - String image = Http.url(new URL(pageWithImageUrl)).get().select("div.picture_container > a > img").attr("src"); + // This works around some redirect fuckery xhamster likes to do where visiting m.xhamster.com sends to + // the page chamster.com but displays the mobile site from m.xhamster.com + pageWithImageUrl = pageWithImageUrl.replaceAll("://xhamster\\.", "://m.xhamster."); + String image = Http.url(new URL(pageWithImageUrl)).get().select("a > img#photoCurr").attr("src"); downloadFile(image); } catch (IOException e) { LOGGER.error("Was unable to load page " + pageWithImageUrl); From 6b8f379e9de701f2dd2dd0038dd0258ea568179f Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Tue, 13 Aug 2019 19:47:10 -0400 Subject: [PATCH 02/17] Added support for xhamster2.com domain --- .../rarchives/ripme/ripper/rippers/XhamsterRipper.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java index 9faf5c09..2dbcec2a 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java @@ -49,7 +49,7 @@ public class XhamsterRipper extends AbstractHTMLRipper { URLToReturn = URLToReturn.replaceAll("m.xhamster\\.(com|one|desi)", "xhamster.com"); URLToReturn = URLToReturn.replaceAll("\\w\\w\\.xhamster\\.(com|one|desi)", "xhamster.com"); if (!isVideoUrl(url)) { - URLToReturn = URLToReturn.replaceAll("xhamster.com", "m.xhamster.com"); + URLToReturn = URLToReturn.replaceAll("xhamster2?.com", "m.xhamster.com"); } URL san_url = new URL(URLToReturn); LOGGER.info("sanitized URL is " + san_url.toExternalForm()); @@ -58,17 +58,17 @@ public class XhamsterRipper extends AbstractHTMLRipper { @Override public String getGID(URL url) throws MalformedURLException { - Pattern p = Pattern.compile("^https?://[\\w\\w.]*xhamster\\.com/photos/gallery/.*?(\\d+)$"); + Pattern p = Pattern.compile("^https?://[\\w\\w.]*xhamster2?\\.com/photos/gallery/.*?(\\d+)$"); Matcher m = p.matcher(url.toExternalForm()); if (m.matches()) { return m.group(1); } - p = Pattern.compile("^https?://[\\w\\w.]*xhamster\\.com/users/([a-zA-Z0-9_-]+)/(photos|videos)(/\\d+)?"); + p = Pattern.compile("^https?://[\\w\\w.]*xhamster2?\\.com/users/([a-zA-Z0-9_-]+)/(photos|videos)(/\\d+)?"); m = p.matcher(url.toExternalForm()); if (m.matches()) { return "user_" + m.group(1); } - p = Pattern.compile("^https?://.*xhamster\\.com/(movies|videos)/(.*)$"); + p = Pattern.compile("^https?://.*xhamster2?\\.com/(movies|videos)/(.*)$"); m = p.matcher(url.toExternalForm()); if (m.matches()) { return m.group(2); @@ -164,6 +164,7 @@ public class XhamsterRipper extends AbstractHTMLRipper { // This works around some redirect fuckery xhamster likes to do where visiting m.xhamster.com sends to // the page chamster.com but displays the mobile site from m.xhamster.com pageWithImageUrl = pageWithImageUrl.replaceAll("://xhamster\\.", "://m.xhamster."); + pageWithImageUrl = pageWithImageUrl.replaceAll("://xhamster2\\.", "://m.xhamster."); String image = Http.url(new URL(pageWithImageUrl)).get().select("a > img#photoCurr").attr("src"); downloadFile(image); } catch (IOException e) { From 6f6d1b9094486a12b4f35706e6a8343a523a1db0 Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Tue, 13 Aug 2019 19:47:42 -0400 Subject: [PATCH 03/17] Marked tests as @Test and added tests for newly support domains --- .../ripper/rippers/XhamsterRipperTest.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XhamsterRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XhamsterRipperTest.java index 3ccccb49..96a9295e 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XhamsterRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XhamsterRipperTest.java @@ -5,24 +5,41 @@ import java.net.URL; import com.rarchives.ripme.ripper.rippers.XhamsterRipper; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Test; + public class XhamsterRipperTest extends RippersTest { - + @Test public void testXhamsterAlbum1() throws IOException { XhamsterRipper ripper = new XhamsterRipper(new URL("https://xhamster.com/photos/gallery/sexy-preggo-girls-9026608")); testRipper(ripper); } - + @Test + public void testXhamster2Album() throws IOException { + XhamsterRipper ripper = new XhamsterRipper(new URL("https://xhamster2.com/photos/gallery/sexy-preggo-girls-9026608")); + testRipper(ripper); + } + @Test public void testXhamsterAlbum2() throws IOException { XhamsterRipper ripper = new XhamsterRipper(new URL("https://xhamster.com/photos/gallery/japanese-dolls-4-asahi-mizuno-7254664")); testRipper(ripper); } - + @Test + public void testXhamsterAlbumOneDomain() throws IOException { + XhamsterRipper ripper = new XhamsterRipper(new URL("https://xhamster.one/photos/gallery/japanese-dolls-4-asahi-mizuno-7254664")); + testRipper(ripper); + } + @Test + public void testXhamsterAlbumDesiDomain() throws IOException { + XhamsterRipper ripper = new XhamsterRipper(new URL("https://xhamster.desi/photos/gallery/japanese-dolls-4-asahi-mizuno-7254664")); + testRipper(ripper); + } + @Test public void testXhamsterVideo() throws IOException { XhamsterRipper ripper = new XhamsterRipper(new URL("https://xhamster.com/videos/brazzers-busty-big-booty-milf-lisa-ann-fucks-her-masseur-1492828")); testRipper(ripper); } - + @Test public void testBrazilianXhamster() throws IOException { XhamsterRipper ripper = new XhamsterRipper(new URL("https://pt.xhamster.com/photos/gallery/silvana-7105696")); testRipper(ripper); @@ -33,7 +50,7 @@ public class XhamsterRipperTest extends RippersTest { XhamsterRipper ripper = new XhamsterRipper(url); assertEquals("7254664", ripper.getGID(url)); } - + @Test public void testGetNextPage() throws IOException { XhamsterRipper ripper = new XhamsterRipper(new URL("https://pt.xhamster.com/photos/gallery/mega-compil-6-10728626")); Document doc = ripper.getFirstPage(); From a2fe593e39f56e51ea2f6108f0209eafb277a79e Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Tue, 13 Aug 2019 20:57:45 -0400 Subject: [PATCH 04/17] Reenabled accidently disabled tests --- .../tst/ripper/rippers/ChanRipperTest.java | 9 +++--- .../ripper/rippers/CheveretoRipperTest.java | 4 ++- .../ripper/rippers/ComicextraRipperTest.java | 5 ++-- .../ripper/rippers/DribbbleRipperTest.java | 2 ++ .../tst/ripper/rippers/E621RipperTest.java | 5 ++-- .../tst/ripper/rippers/EhentaiRipperTest.java | 3 ++ .../ripper/rippers/EightmusesRipperTest.java | 6 ++-- .../tst/ripper/rippers/EromeRipperTest.java | 11 +++---- .../rippers/FivehundredpxRipperTest.java | 29 ++++++++++--------- .../ripper/rippers/FuraffinityRipperTest.java | 7 +++-- .../ripper/rippers/FuskatorRipperTest.java | 4 ++- .../tst/ripper/rippers/GfycatRipperTest.java | 3 ++ .../rippers/GirlsOfDesireRipperTest.java | 2 ++ .../tst/ripper/rippers/HbrowseRipperTest.java | 2 ++ .../ripper/rippers/Hentai2readRipperTest.java | 2 ++ .../ripper/rippers/HentaicafeRipperTest.java | 3 ++ .../rippers/HentaifoundryRipperTest.java | 6 ++-- .../ripper/rippers/HentaiimageRipperTest.java | 3 +- .../ripper/rippers/HqpornerRipperTest.java | 11 +++---- .../ripper/rippers/ImagearnRipperTest.java | 2 ++ .../ripper/rippers/ImagebamRipperTest.java | 2 ++ .../ripper/rippers/ImagefapRipperTest.java | 3 ++ .../tst/ripper/rippers/ImgboxRipperTest.java | 2 ++ .../ripper/rippers/InstagramRipperTest.java | 8 +++-- .../ripper/rippers/JagodibujaRipperTest.java | 2 ++ .../ripper/rippers/LusciousRipperTest.java | 4 ++- .../ripper/rippers/MotherlessRipperTest.java | 1 - .../tst/ripper/rippers/MulemaxRipperTest.java | 3 +- .../rippers/MyhentaicomicsRipperTest.java | 6 ++-- .../rippers/MyhentaigalleryRipperTest.java | 3 +- .../ripper/rippers/NewgroundsRipperTest.java | 3 +- .../ripper/rippers/NewsfilterRipperTest.java | 3 +- .../tst/ripper/rippers/NhentaiRipperTest.java | 2 ++ .../tst/ripper/rippers/PahealRipperTest.java | 2 ++ .../ripper/rippers/PicstatioRipperTest.java | 3 +- .../rippers/PorncomixDotOneRipperTest.java | 2 ++ .../tst/ripper/rippers/PornhubRipperTest.java | 3 ++ .../tst/ripper/rippers/Rule34RipperTest.java | 2 ++ .../rippers/SinnercomicsRipperTest.java | 2 ++ .../ripper/rippers/SpankBangRipperTest.java | 3 +- .../ripper/rippers/TapasticRipperTest.java | 2 ++ .../ripper/rippers/TeenplanetRipperTest.java | 2 ++ .../rippers/TheyiffgalleryRipperTest.java | 2 ++ .../tst/ripper/rippers/TsuminoRipperTest.java | 4 ++- .../tst/ripper/rippers/VidbleRipperTest.java | 2 ++ .../ripper/rippers/ViewcomicRipperTest.java | 2 ++ .../tst/ripper/rippers/VkRipperTest.java | 4 +++ .../ripper/rippers/WebtoonsRipperTest.java | 6 ++-- .../rippers/WordpressComicRipperTest.java | 18 ++++++------ .../tst/ripper/rippers/XvideosRipperTest.java | 3 +- .../tst/ripper/rippers/YoupornRipperTest.java | 2 ++ .../tst/ripper/rippers/YuvutuRipperTest.java | 5 ++-- .../tst/ripper/rippers/ZizkiRipperTest.java | 3 +- 53 files changed, 162 insertions(+), 71 deletions(-) diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ChanRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ChanRipperTest.java index 2ac29e40..22995002 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ChanRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ChanRipperTest.java @@ -11,9 +11,10 @@ import com.rarchives.ripme.ripper.rippers.ChanRipper; import com.rarchives.ripme.ripper.rippers.ripperhelpers.ChanSite; import com.rarchives.ripme.utils.Http; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Test; public class ChanRipperTest extends RippersTest { - + @Test public void testChanURLFailures() throws IOException { List failURLs = new ArrayList<>(); // URLs that should not work @@ -26,7 +27,7 @@ public class ChanRipperTest extends RippersTest { } } } - + @Test public void testChanURLPasses() throws IOException { List passURLs = new ArrayList<>(); // URLs that should work @@ -43,7 +44,7 @@ public class ChanRipperTest extends RippersTest { deleteDir(ripper.getWorkingDir()); } } - + @Test public void testChanStringParsing() throws IOException { List site1 = Arrays.asList("site1.com"); List site1Cdns = Arrays.asList("cnd1.site1.com", "cdn2.site2.biz"); @@ -59,7 +60,7 @@ public class ChanRipperTest extends RippersTest { assertEquals(chansFromConfig.get(1).getDomains(), site2); assertEquals(chansFromConfig.get(1).getCdns(), site2Cdns); } - + @Test public void testChanRipper() throws IOException { List contentURLs = new ArrayList<>(); contentURLs.add(new URL(getRandomThreadDesuarchive())); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/CheveretoRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/CheveretoRipperTest.java index 6fd20060..385464da 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/CheveretoRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/CheveretoRipperTest.java @@ -4,13 +4,15 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.CheveretoRipper; +import org.junit.jupiter.api.Test; public class CheveretoRipperTest extends RippersTest { + @Test public void testTagFox() throws IOException { CheveretoRipper ripper = new CheveretoRipper(new URL("http://tag-fox.com/album/Thjb")); testRipper(ripper); } - + @Test public void testSubdirAlbum() throws IOException { CheveretoRipper ripper = new CheveretoRipper(new URL("https://kenzato.uk/booru/album/TnEc")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ComicextraRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ComicextraRipperTest.java index a3d66d50..ffe0f12b 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ComicextraRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ComicextraRipperTest.java @@ -3,15 +3,16 @@ package com.rarchives.ripme.tst.ripper.rippers; import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.ComicextraRipper; +import org.junit.jupiter.api.Test; public class ComicextraRipperTest extends RippersTest { - + @Test public void testComicUrl() throws IOException { URL url = new URL("https://www.comicextra.com/comic/karma-police"); ComicextraRipper ripper = new ComicextraRipper(url); testRipper(ripper); } - + @Test public void testChapterUrl() throws IOException { URL url = new URL("https://www.comicextra.com/v-for-vendetta/chapter-1"); ComicextraRipper ripper = new ComicextraRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DribbbleRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DribbbleRipperTest.java index ba4b9ec1..36b56d6a 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DribbbleRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/DribbbleRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.DribbbleRipper; +import org.junit.jupiter.api.Test; public class DribbbleRipperTest extends RippersTest { + @Test public void testDribbbleRip() throws IOException { DribbbleRipper ripper = new DribbbleRipper(new URL("https://dribbble.com/typogriff")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/E621RipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/E621RipperTest.java index 01cb1532..5f7165b2 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/E621RipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/E621RipperTest.java @@ -4,18 +4,19 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.E621Ripper; +import org.junit.jupiter.api.Test; public class E621RipperTest extends RippersTest { public void testRip() throws IOException { E621Ripper ripper = new E621Ripper(new URL("https://e621.net/post/index/1/beach")); testRipper(ripper); } - + @Test public void testFlashOrWebm() throws IOException { E621Ripper ripper = new E621Ripper(new URL("https://e621.net/post/index/1/gif")); testRipper(ripper); } - + @Test public void testGetNextPage() throws IOException { E621Ripper nextPageRipper = new E621Ripper(new URL("https://e621.net/post/index/1/cosmicminerals")); try { diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EhentaiRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EhentaiRipperTest.java index 8e87f8a5..78234951 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EhentaiRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EhentaiRipperTest.java @@ -6,14 +6,17 @@ import java.util.List; import com.rarchives.ripme.ripper.rippers.EHentaiRipper; import com.rarchives.ripme.utils.RipUtils; +import org.junit.jupiter.api.Test; public class EhentaiRipperTest extends RippersTest { + @Test public void testEHentaiAlbum() throws IOException { EHentaiRipper ripper = new EHentaiRipper(new URL("https://e-hentai.org/g/1144492/e823bdf9a5/")); testRipper(ripper); } // Test the tag black listing + @Test public void testTagBlackList() throws IOException { URL url = new URL("https://e-hentai.org/g/1228503/1a2f455f96/"); EHentaiRipper ripper = new EHentaiRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EightmusesRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EightmusesRipperTest.java index d4133055..2cdbcb2e 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EightmusesRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EightmusesRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.EightmusesRipper; +import org.junit.jupiter.api.Test; public class EightmusesRipperTest extends RippersTest { + @Test public void testEightmusesAlbum() throws IOException { // A simple image album EightmusesRipper ripper = new EightmusesRipper(new URL("https://www.8muses.com/comix/album/Affect3D-Comics/TheDude3DX/Lust-Unleashed-The-Urge-To-Explore")); @@ -17,12 +19,12 @@ public class EightmusesRipperTest extends RippersTest { ripper = new EightmusesRipper(new URL("https://www.8muses.com/comix/album/Blacknwhitecomics_com-Comix/BlacknWhiteComics/The-Mayor")); testRipper(ripper); } - + @Test public void testGID() throws IOException { EightmusesRipper ripper = new EightmusesRipper(new URL("https://www.8muses.com/comix/album/Affect3D-Comics/TheDude3DX/Lust-Unleashed-The-Urge-To-Explore")); assertEquals("Affect3D-Comics", ripper.getGID(new URL("https://www.8muses.com/comics/album/Affect3D-Comics/TheDude3DX/Lust-Unleashed-The-Urge-To-Explore"))); } - + @Test public void testGetSubdir() throws IOException { EightmusesRipper ripper = new EightmusesRipper(new URL("https://www.8muses.com/comix/album/Affect3D-Comics/TheDude3DX/Lust-Unleashed-The-Urge-To-Explore")); assertEquals("After-Party-Issue-1", ripper.getSubdir("After Party - Issue 1")); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EromeRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EromeRipperTest.java index 38fb43e6..4e7241af 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EromeRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/EromeRipperTest.java @@ -5,27 +5,28 @@ import java.net.MalformedURLException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.EromeRipper; +import org.junit.jupiter.api.Test; public class EromeRipperTest extends RippersTest { - + @Test public void testGetGIDProfilePage() throws IOException { URL url = new URL("https://www.erome.com/Jay-Jenna"); EromeRipper ripper = new EromeRipper(url); assertEquals("Jay-Jenna", ripper.getGID(url)); } - + @Test public void testGetGIDAlbum() throws IOException { URL url = new URL("https://www.erome.com/a/KbDAM1XT"); EromeRipper ripper = new EromeRipper(url); assertEquals("KbDAM1XT", ripper.getGID(url)); } - + @Test public void testGetAlbumsToQueue() throws IOException { URL url = new URL("https://www.erome.com/Jay-Jenna"); EromeRipper ripper = new EromeRipper(url); assert (2 >= ripper.getAlbumsToQueue(ripper.getFirstPage()).size()); } - + @Test public void testPageContainsAlbums() throws IOException { URL url = new URL("https://www.erome.com/Jay-Jenna"); EromeRipper ripper = new EromeRipper(url); @@ -38,7 +39,7 @@ public class EromeRipperTest extends RippersTest { EromeRipper ripper = new EromeRipper(url); testRipper(ripper); } - + @Test public void testGetURLsFromPage() throws IOException { URL url = new URL("https://www.erome.com/a/Tak8F2h6"); EromeRipper ripper = new EromeRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FivehundredpxRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FivehundredpxRipperTest.java index 214220b8..0392b36e 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FivehundredpxRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FivehundredpxRipperTest.java @@ -1,15 +1,16 @@ -//package com.rarchives.ripme.tst.ripper.rippers; -// -//import java.io.IOException; -//import java.net.URL; -// -//import com.rarchives.ripme.ripper.rippers.FivehundredpxRipper; -// -//public class FivehundredpxRipperTest extends RippersTest { -// public void test500pxAlbum() throws IOException { -// FivehundredpxRipper ripper = new FivehundredpxRipper(new URL("https://marketplace.500px.com/alexander_hurman")); -// testRipper(ripper); -// } -//} +package com.rarchives.ripme.tst.ripper.rippers; -// Ripper is broken. See https://github.com/RipMeApp/ripme/issues/438 \ No newline at end of file +import java.io.IOException; +import java.net.URL; + +import com.rarchives.ripme.ripper.rippers.FivehundredpxRipper; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +public class FivehundredpxRipperTest extends RippersTest { + @Test @Disabled("Ripper is broken. See https://github.com/RipMeApp/ripme/issues/438") + public void test500pxAlbum() throws IOException { + FivehundredpxRipper ripper = new FivehundredpxRipper(new URL("https://marketplace.500px.com/alexander_hurman")); + testRipper(ripper); + } +} \ No newline at end of file diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuraffinityRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuraffinityRipperTest.java index f604a7dc..1f397bcb 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuraffinityRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuraffinityRipperTest.java @@ -4,14 +4,15 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.FuraffinityRipper; +import org.junit.jupiter.api.Test; public class FuraffinityRipperTest extends RippersTest { - + @Test public void testFuraffinityAlbum() throws IOException { FuraffinityRipper ripper = new FuraffinityRipper(new URL("https://www.furaffinity.net/gallery/spencerdragon/")); testRipper(ripper); } - + @Test public void testFuraffinityScrap() throws IOException { FuraffinityRipper ripper = new FuraffinityRipper(new URL("http://www.furaffinity.net/scraps/sssonic2/")); testRipper(ripper); @@ -22,7 +23,7 @@ public class FuraffinityRipperTest extends RippersTest { FuraffinityRipper ripper = new FuraffinityRipper(url); assertEquals("mustardgas", ripper.getGID(url)); } - + @Test public void testLogin() throws IOException { URL url = new URL("https://www.furaffinity.net/gallery/mustardgas/"); FuraffinityRipper ripper = new FuraffinityRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuskatorRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuskatorRipperTest.java index ded62ad0..334cd6ff 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuskatorRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/FuskatorRipperTest.java @@ -4,13 +4,15 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.FuskatorRipper; +import org.junit.jupiter.api.Test; public class FuskatorRipperTest extends RippersTest { + @Test public void testFuskatorAlbum() throws IOException { FuskatorRipper ripper = new FuskatorRipper(new URL("https://fuskator.com/thumbs/hqt6pPXAf9z/Shaved-Blonde-Babe-Katerina-Ambre.html")); testRipper(ripper); } - + @Test public void testUrlsWithTiled() throws IOException { FuskatorRipper ripper = new FuskatorRipper(new URL("https://fuskator.com/thumbs/hsrzk~UIFmJ/Blonde-Babe-Destiny-Dixon-Playing-With-Black-Dildo.html")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java index 2579d7e4..014141b1 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java @@ -1,6 +1,8 @@ package com.rarchives.ripme.tst.ripper.rippers; import com.rarchives.ripme.ripper.rippers.GfycatRipper; +import org.junit.jupiter.api.Test; + import java.io.IOException; import java.net.URL; @@ -11,6 +13,7 @@ public class GfycatRipperTest extends RippersTest { * Rips correctly formatted URL directly from Gfycat * @throws IOException */ + @Test public void testGfycatGoodURL() throws IOException{ GfycatRipper ripper = new GfycatRipper(new URL("https://gfycat.com/TemptingExcellentIchthyosaurs")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GirlsOfDesireRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GirlsOfDesireRipperTest.java index fa51a262..07fb8616 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GirlsOfDesireRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GirlsOfDesireRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.GirlsOfDesireRipper; +import org.junit.jupiter.api.Test; public class GirlsOfDesireRipperTest extends RippersTest { + @Test public void testGirlsofdesireAlbum() throws IOException { GirlsOfDesireRipper ripper = new GirlsOfDesireRipper(new URL("http://www.girlsofdesire.org/galleries/krillia/")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java index 9ae53be9..35b8ffa6 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HbrowseRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.HbrowseRipper; +import org.junit.jupiter.api.Test; public class HbrowseRipperTest extends RippersTest { + @Test public void testPahealRipper() throws IOException { HbrowseRipper ripper = new HbrowseRipper(new URL("https://www.hbrowse.com/21013/c00001")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Hentai2readRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Hentai2readRipperTest.java index f142635d..f448f0de 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Hentai2readRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Hentai2readRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.Hentai2readRipper; +import org.junit.jupiter.api.Test; public class Hentai2readRipperTest extends RippersTest { + @Test public void testHentai2readAlbum() throws IOException { Hentai2readRipper ripper = new Hentai2readRipper(new URL("https://hentai2read.com/sm_school_memorial/1/")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaicafeRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaicafeRipperTest.java index 0be2dac8..9c922260 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaicafeRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaicafeRipperTest.java @@ -4,13 +4,16 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.HentaiCafeRipper; +import org.junit.jupiter.api.Test; public class HentaicafeRipperTest extends RippersTest { + @Test public void testHentaiCafeAlbum() throws IOException { HentaiCafeRipper ripper = new HentaiCafeRipper(new URL("https://hentai.cafe/kikuta-the-oni-in-the-room/")); testRipper(ripper); } // This album has a line break (
) in the url. Test it to make sure ripme can handle these invalid urls + @Test public void testAlbumWithInvalidChars() throws IOException { HentaiCafeRipper ripper = new HentaiCafeRipper(new URL("https://hentai.cafe/chobipero-club/")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaifoundryRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaifoundryRipperTest.java index 1ea63e01..d86e2904 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaifoundryRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaifoundryRipperTest.java @@ -4,19 +4,21 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.HentaifoundryRipper; +import org.junit.jupiter.api.Test; public class HentaifoundryRipperTest extends RippersTest { + @Test public void testHentaifoundryRip() throws IOException { HentaifoundryRipper ripper = new HentaifoundryRipper(new URL("https://www.hentai-foundry.com/pictures/user/personalami")); testRipper(ripper); } - + @Test public void testHentaifoundryGetGID() throws IOException { HentaifoundryRipper ripper = new HentaifoundryRipper(new URL("https://www.hentai-foundry.com/stories/user/Rakked")); testRipper(ripper); assertEquals("Rakked", ripper.getGID(new URL("https://www.hentai-foundry.com/stories/user/Rakked"))); } - + @Test public void testHentaifoundryPdfRip() throws IOException { HentaifoundryRipper ripper = new HentaifoundryRipper(new URL("https://www.hentai-foundry.com/stories/user/Rakked")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaiimageRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaiimageRipperTest.java index 9f78b099..3fab101d 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaiimageRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HentaiimageRipperTest.java @@ -5,9 +5,10 @@ import java.net.URL; import com.rarchives.ripme.ripper.rippers.HentaiimageRipper; import com.rarchives.ripme.utils.Utils; +import org.junit.jupiter.api.Test; public class HentaiimageRipperTest extends RippersTest { - + @Test public void testHentaifoundryRip() throws IOException { if (Utils.getConfigBoolean("test.run_flaky_tests", false)) { HentaiimageRipper ripper = new HentaiimageRipper(new URL("https://hentai-image.com/image/afrobull-gerudo-ongoing-12/")); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HqpornerRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HqpornerRipperTest.java index e1b730e1..6ef21c8d 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HqpornerRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/HqpornerRipperTest.java @@ -2,6 +2,7 @@ package com.rarchives.ripme.tst.ripper.rippers; import com.rarchives.ripme.ripper.rippers.HqpornerRipper; import com.rarchives.ripme.utils.Utils; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URL; @@ -21,13 +22,13 @@ public class HqpornerRipperTest extends RippersTest { HqpornerRipper ripper = new HqpornerRipper(poolURL); assertEquals("84636-pool_lesson_with_a_cheating_husband", ripper.getGID(poolURL)); } - + @Test public void testGetURLsFromPage() throws IOException { URL actressUrl = new URL("https://hqporner.com/actress/kali-roses"); HqpornerRipper ripper = new HqpornerRipper(actressUrl); assert (ripper.getURLsFromPage(ripper.getFirstPage()).size() >= 2); } - + @Test public void testGetNextPage() throws IOException { URL multiPageUrl = new URL("https://hqporner.com/category/tattooed"); HqpornerRipper multiPageRipper = new HqpornerRipper(multiPageUrl); @@ -41,7 +42,7 @@ public class HqpornerRipperTest extends RippersTest { assertEquals(e.getMessage(), "No next page found."); } } - + @Test public void testMyDaddyVideoHost() throws IOException { if (Utils.getConfigBoolean("test.run_flaky_tests", false)) { URL myDaddyUrl = new URL("https://hqporner.com/hdporn/84636-pool_lesson_with_a_cheating_husband.html"); @@ -49,7 +50,7 @@ public class HqpornerRipperTest extends RippersTest { testRipper(myDaddyRipper); } } - + @Test public void testFlyFlvVideoHost() throws IOException { if (Utils.getConfigBoolean("test.run_flaky_tests", false)) { URL flyFlvUrl = new URL( @@ -58,7 +59,7 @@ public class HqpornerRipperTest extends RippersTest { testRipper(flyFlvRipper); } } - + @Test public void testUnknownVideoHost() throws IOException { if (Utils.getConfigBoolean("test.run_flaky_tests", false)) { URL unknownHostUrl = new URL("https://hqporner.com/hdporn/79528-Kayden_Kross_-_Serious_Masturbation.html"); // howq.cc diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagearnRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagearnRipperTest.java index b9710635..69b6d899 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagearnRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagearnRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.ImagearnRipper; +import org.junit.jupiter.api.Test; public class ImagearnRipperTest extends RippersTest { + @Test public void testImagearnRip() throws IOException { ImagearnRipper ripper = new ImagearnRipper(new URL("http://imagearn.com//gallery.php?id=578682")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagebamRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagebamRipperTest.java index 0c3e0761..efe57b96 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagebamRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagebamRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.ImagebamRipper; +import org.junit.jupiter.api.Test; public class ImagebamRipperTest extends RippersTest { + @Test public void testImagebamRip() throws IOException { ImagebamRipper ripper = new ImagebamRipper(new URL("http://www.imagebam.com/gallery/488cc796sllyf7o5srds8kpaz1t4m78i")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagefapRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagefapRipperTest.java index b64952cc..533fff79 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagefapRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImagefapRipperTest.java @@ -6,8 +6,10 @@ import java.util.HashMap; import java.util.Map; import com.rarchives.ripme.ripper.rippers.ImagefapRipper; +import org.junit.jupiter.api.Test; public class ImagefapRipperTest extends RippersTest { + @Test public void testImagefapAlbums() throws IOException { Map testURLs = new HashMap<>(); @@ -24,6 +26,7 @@ public class ImagefapRipperTest extends RippersTest { testRipper(ripper); } } + @Test public void testImagefapGetAlbumTitle() throws IOException { URL url = new URL("https://www.imagefap.com/gallery.php?gid=7789753"); ImagefapRipper ripper = new ImagefapRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgboxRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgboxRipperTest.java index 27ebdca2..bb877450 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgboxRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ImgboxRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.ImgboxRipper; +import org.junit.jupiter.api.Test; public class ImgboxRipperTest extends RippersTest { + @Test public void testImgboxRip() throws IOException { ImgboxRipper ripper = new ImgboxRipper(new URL("https://imgbox.com/g/FJPF7t26FD")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java index fb8b8978..5cd0eeeb 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/InstagramRipperTest.java @@ -8,9 +8,11 @@ import java.util.List; import java.util.Map; import com.rarchives.ripme.ripper.rippers.InstagramRipper; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; public class InstagramRipperTest extends RippersTest { - + @Test public void testInstagramGID() throws IOException { Map testURLs = new HashMap<>(); testURLs.put(new URL("http://instagram.com/Test_User"), "Test_User"); @@ -31,12 +33,12 @@ public class InstagramRipperTest extends RippersTest { deleteDir(ripper.getWorkingDir()); } } - + @Test @Disabled("Fails to rip") public void testInstagramAlbums() throws IOException { List contentURLs = new ArrayList<>(); // This unit test is a bit flaky //contentURLs.add(new URL("https://www.instagram.com/Test_User/")); - contentURLs.add(new URL("https://www.instagram.com/p/BZ4egP7njW5/?hl=en")); + contentURLs.add(new URL("https://www.instagram.com/p/BaNPpaHn2zU/?hl=en")); contentURLs.add(new URL("https://www.instagram.com/p/BaNPpaHn2zU/")); for (URL url : contentURLs) { InstagramRipper ripper = new InstagramRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/JagodibujaRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/JagodibujaRipperTest.java index a179aa90..d41c0352 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/JagodibujaRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/JagodibujaRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.JagodibujaRipper; +import org.junit.jupiter.api.Test; public class JagodibujaRipperTest extends RippersTest { + @Test public void testJagodibujaRipper() throws IOException { // a photo set JagodibujaRipper ripper = new JagodibujaRipper(new URL("http://www.jagodibuja.com/comic-in-me/")); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java index f8da140c..6536aceb 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.LusciousRipper; +import org.junit.jupiter.api.Test; public class LusciousRipperTest extends RippersTest { + @Test public void testPahealRipper() throws IOException { // a photo set LusciousRipper ripper = new LusciousRipper( @@ -18,7 +20,7 @@ public class LusciousRipperTest extends RippersTest { LusciousRipper ripper = new LusciousRipper(url); assertEquals("h-na-alice-wa-suki-desu-ka-do-you-like-alice-when_321609", ripper.getGID(url)); } - + @Test public void testGetNextPage() throws IOException { URL multiPageAlbumUrl = new URL("https://luscious.net/albums/women-of-color_58/"); LusciousRipper multiPageRipper = new LusciousRipper(multiPageAlbumUrl); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MotherlessRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MotherlessRipperTest.java index 8a3809ea..2739f9da 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MotherlessRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MotherlessRipperTest.java @@ -8,7 +8,6 @@ import com.rarchives.ripme.ripper.rippers.MotherlessRipper; import org.junit.jupiter.api.Test; public class MotherlessRipperTest extends RippersTest { - // https://github.com/RipMeApp/ripme/issues/238 - MotherlessRipperTest is flaky on Travis CI @Test public void testMotherlessAlbumRip() throws IOException { MotherlessRipper ripper = new MotherlessRipper(new URL("https://motherless.com/G1168D90")); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MulemaxRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MulemaxRipperTest.java index 1e4dcdcd..8c12a94d 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MulemaxRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MulemaxRipperTest.java @@ -4,9 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.MulemaxRipper; +import org.junit.jupiter.api.Test; public class MulemaxRipperTest extends RippersTest { - + @Test public void testMulemaxVideo() throws IOException { MulemaxRipper ripper = new MulemaxRipper(new URL("https://mulemax.com/video/1720/emma-and-her-older-sissy-are-home-for-a-holiday-break")); //pick any video from the front page testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaicomicsRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaicomicsRipperTest.java index 5e6cfc7e..72524b06 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaicomicsRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaicomicsRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.MyhentaicomicsRipper; +import org.junit.jupiter.api.Test; public class MyhentaicomicsRipperTest extends RippersTest { + @Test public void testMyhentaicomicsAlbum() throws IOException { MyhentaicomicsRipper ripper = new MyhentaicomicsRipper(new URL("http://myhentaicomics.com/index.php/Nienna-Lost-Tales")); testRipper(ripper); @@ -21,13 +23,13 @@ public class MyhentaicomicsRipperTest extends RippersTest { // Test a tag assertEquals("2409", ripper.getGID(new URL("http://myhentaicomics.com/index.php/tag/2409/"))); } - + @Test public void testGetAlbumsToQueue() throws IOException { URL url = new URL("https://myhentaicomics.com/index.php/tag/3167/"); MyhentaicomicsRipper ripper = new MyhentaicomicsRipper(url); assertEquals(15, ripper.getAlbumsToQueue(ripper.getFirstPage()).size()); } - + @Test public void testPageContainsAlbums() throws IOException { URL url = new URL("https://myhentaicomics.com/index.php/tag/3167/"); URL url2 = new URL("https://myhentaicomics.com/index.php/search?q=test"); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaigalleryRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaigalleryRipperTest.java index fc150c7e..3d126b82 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaigalleryRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/MyhentaigalleryRipperTest.java @@ -4,9 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.MyhentaigalleryRipper; +import org.junit.jupiter.api.Test; public class MyhentaigalleryRipperTest extends RippersTest { - + @Test public void testMyhentaigalleryAlbum() throws IOException { MyhentaigalleryRipper ripper = new MyhentaigalleryRipper( new URL("https://myhentaigallery.com/gallery/thumbnails/9201")); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewgroundsRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewgroundsRipperTest.java index 5486df15..5815aa8f 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewgroundsRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewgroundsRipperTest.java @@ -1,12 +1,13 @@ package com.rarchives.ripme.tst.ripper.rippers; import com.rarchives.ripme.ripper.rippers.NewgroundsRipper; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URL; public class NewgroundsRipperTest extends RippersTest { - + @Test public void testNewgroundsRip() throws IOException { NewgroundsRipper ripper = new NewgroundsRipper(new URL("https://zone-sama.newgrounds.com/art")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewsfilterRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewsfilterRipperTest.java index c22ba9c5..8567b0ff 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewsfilterRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NewsfilterRipperTest.java @@ -4,9 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.NewsfilterRipper; +import org.junit.jupiter.api.Test; public class NewsfilterRipperTest extends RippersTest { - + @Test public void testNewsfilterRip() throws IOException { NewsfilterRipper ripper = new NewsfilterRipper(new URL("http://newsfilter.org/gallery/he-doubted-she-would-fuck-on-cam-happy-to-be-proven-wrong-216799")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NhentaiRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NhentaiRipperTest.java index f6418ef7..7e82adaf 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NhentaiRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/NhentaiRipperTest.java @@ -6,6 +6,7 @@ import java.util.List; import com.rarchives.ripme.ripper.rippers.NhentaiRipper; import com.rarchives.ripme.utils.RipUtils; +import org.junit.jupiter.api.Test; public class NhentaiRipperTest extends RippersTest { public void testRip() throws IOException { @@ -19,6 +20,7 @@ public class NhentaiRipperTest extends RippersTest { } // Test the tag black listing + @Test public void testTagBlackList() throws IOException { URL url = new URL("https://nhentai.net/g/233295/"); NhentaiRipper ripper = new NhentaiRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PahealRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PahealRipperTest.java index cb2b5c3b..84403005 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PahealRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PahealRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.PahealRipper; +import org.junit.jupiter.api.Test; public class PahealRipperTest extends RippersTest { + @Test public void testPahealRipper() throws IOException { // a photo set PahealRipper ripper = new PahealRipper(new URL("http://rule34.paheal.net/post/list/bimbo/1")); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PicstatioRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PicstatioRipperTest.java index 606cd569..1c5cf273 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PicstatioRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PicstatioRipperTest.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.PicstatioRipper; +import org.junit.jupiter.api.Test; public class PicstatioRipperTest extends RippersTest { @@ -11,7 +12,7 @@ public class PicstatioRipperTest extends RippersTest { PicstatioRipper ripper = new PicstatioRipper(new URL("https://www.picstatio.com/aerial-view-wallpapers")); testRipper(ripper); } - + @Test public void testGID() throws IOException { PicstatioRipper ripper = new PicstatioRipper(new URL("https://www.picstatio.com/aerial-view-wallpapers")); assertEquals("aerial-view-wallpapers", ripper.getGID(new URL("https://www.picstatio.com/aerial-view-wallpapers"))); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PorncomixDotOneRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PorncomixDotOneRipperTest.java index 2dc92e20..9d4df122 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PorncomixDotOneRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PorncomixDotOneRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.PorncomixDotOneRipper; +import org.junit.jupiter.api.Test; public class PorncomixDotOneRipperTest extends RippersTest { + @Test public void testPorncomixAlbum() throws IOException { PorncomixDotOneRipper ripper = new PorncomixDotOneRipper(new URL("https://www.porncomix.one/gallery/blacknwhite-make-america-great-again")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PornhubRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PornhubRipperTest.java index 1f5219b1..84094515 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PornhubRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/PornhubRipperTest.java @@ -7,8 +7,10 @@ import com.rarchives.ripme.ripper.rippers.PornhubRipper; import com.rarchives.ripme.utils.Http; import com.rarchives.ripme.utils.Utils; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Test; public class PornhubRipperTest extends RippersTest { + @Test public void testPornhubRip() throws IOException { if (Utils.getConfigBoolean("test.run_flaky_tests", false)) { PornhubRipper ripper = new PornhubRipper(new URL("https://www.pornhub.com/album/15680522")); @@ -25,6 +27,7 @@ public class PornhubRipperTest extends RippersTest { } // alternate album, with only 2 pages: https://www.pornhub.com/album/4771891 + @Test public void testGetNextPage() throws IOException { String baseURL = "https://www.pornhub.com/album/15680522"; PornhubRipper ripper = new PornhubRipper(new URL(baseURL)); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Rule34RipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Rule34RipperTest.java index 4c63d66e..129fedd5 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Rule34RipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/Rule34RipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.Rule34Ripper; +import org.junit.jupiter.api.Test; public class Rule34RipperTest extends RippersTest { + @Test public void testShesFreakyRip() throws IOException { Rule34Ripper ripper = new Rule34Ripper(new URL("https://rule34.xxx/index.php?page=post&s=list&tags=bimbo")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SinnercomicsRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SinnercomicsRipperTest.java index 4d5d0b2f..29ad8cf3 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SinnercomicsRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SinnercomicsRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.SinnercomicsRipper; +import org.junit.jupiter.api.Test; public class SinnercomicsRipperTest extends RippersTest { + @Test public void testSinnercomicsAlbum() throws IOException { SinnercomicsRipper ripper; diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SpankBangRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SpankBangRipperTest.java index 19727e65..c73a244e 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SpankBangRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/SpankBangRipperTest.java @@ -4,9 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.SpankbangRipper; +import org.junit.jupiter.api.Test; public class SpankBangRipperTest extends RippersTest { - + @Test public void testSpankBangVideo() throws IOException { SpankbangRipper ripper = new SpankbangRipper(new URL("https://spankbang.com/2a7fh/video/mdb901")); //most popular video of all time on site; should stay up testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TapasticRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TapasticRipperTest.java index f9e448e6..bd424860 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TapasticRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TapasticRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.TapasticRipper; +import org.junit.jupiter.api.Test; public class TapasticRipperTest extends RippersTest { + @Test public void testTapasticRip() throws IOException { TapasticRipper ripper = new TapasticRipper(new URL("https://tapas.io/series/tsiwbakd-comic")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TeenplanetRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TeenplanetRipperTest.java index a402ebc3..4d088742 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TeenplanetRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TeenplanetRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.TeenplanetRipper; +import org.junit.jupiter.api.Test; public class TeenplanetRipperTest extends RippersTest { + @Test public void testTeenplanetRip() throws IOException { TeenplanetRipper ripper = new TeenplanetRipper(new URL("http://teenplanet.org/galleries/the-perfect-side-of-me-6588.html")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TheyiffgalleryRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TheyiffgalleryRipperTest.java index 91fc0617..65ebbb14 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TheyiffgalleryRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TheyiffgalleryRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.TheyiffgalleryRipper; +import org.junit.jupiter.api.Test; public class TheyiffgalleryRipperTest extends RippersTest { + @Test public void testTheyiffgallery() throws IOException { TheyiffgalleryRipper ripper = new TheyiffgalleryRipper(new URL("https://theyiffgallery.com/index?/category/4303")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TsuminoRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TsuminoRipperTest.java index 52c5900a..b1e58adc 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TsuminoRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/TsuminoRipperTest.java @@ -7,14 +7,16 @@ import java.util.List; import com.rarchives.ripme.ripper.rippers.TsuminoRipper; import com.rarchives.ripme.utils.RipUtils; import org.jsoup.nodes.Document; +import org.junit.jupiter.api.Test; public class TsuminoRipperTest extends RippersTest { + @Test public void testTsuminoRipper() throws IOException { TsuminoRipper ripper = new TsuminoRipper(new URL("http://www.tsumino.com/Book/Info/43528/sore-wa-kurokute-suketeita-what-s-tight-and-black-and-sheer-all-over-")); testRipper(ripper); } - + @Test public void testTagBlackList() throws IOException { TsuminoRipper ripper = new TsuminoRipper(new URL("http://www.tsumino.com/Book/Info/43528/sore-wa-kurokute-suketeita-what-s-tight-and-black-and-sheer-all-over-")); Document doc = ripper.getFirstPage(); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VidbleRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VidbleRipperTest.java index 9659d630..f76e2b25 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VidbleRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VidbleRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.VidbleRipper; +import org.junit.jupiter.api.Test; public class VidbleRipperTest extends RippersTest { + @Test public void testVidbleRip() throws IOException { VidbleRipper ripper = new VidbleRipper(new URL("http://www.vidble.com/album/y1oyh3zd")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java index 3d9ed309..cc9d2409 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java @@ -4,8 +4,10 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.ViewcomicRipper; +import org.junit.jupiter.api.Test; public class ViewcomicRipperTest extends RippersTest { + @Test public void testViewcomicRipper() throws IOException { ViewcomicRipper ripper = new ViewcomicRipper(new URL("https://view-comic.com/batman-no-mans-land-vol-1/")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VkRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VkRipperTest.java index cc15ff99..22ccb641 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VkRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/VkRipperTest.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.VkRipper; +import org.junit.jupiter.api.Test; public class VkRipperTest extends RippersTest { // https://github.com/RipMeApp/ripme/issues/252 @@ -14,14 +15,17 @@ public class VkRipperTest extends RippersTest { // EXAMPLE: https://vk.com/album45506334_0 (a single album - profile pictures) // EXAMPLE: https://vk.com/album45506334_00?rev=1 (a single album - wall pictures) // EXAMPLE: https://vk.com/album45506334_101886701 (a single album - custom) + @Test public void testVkAlbumHttpRip() throws IOException { VkRipper ripper = new VkRipper(new URL("http://vk.com/album45506334_0")); testRipper(ripper); } + @Test public void testVkAlbumHttpsRip() throws IOException { VkRipper ripper = new VkRipper(new URL("https://vk.com/album45506334_0")); testRipper(ripper); } + @Test public void testVkPhotosRip() throws IOException { VkRipper ripper = new VkRipper(new URL("https://vk.com/photos45506334")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WebtoonsRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WebtoonsRipperTest.java index 16407ad7..ad634d5f 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WebtoonsRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WebtoonsRipperTest.java @@ -4,18 +4,20 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.WebtoonsRipper; +import org.junit.jupiter.api.Test; public class WebtoonsRipperTest extends RippersTest { + @Test public void testWebtoonsAlbum() throws IOException { WebtoonsRipper ripper = new WebtoonsRipper(new URL("http://www.webtoons.com/en/drama/my-boo/ep-33/viewer?title_no=1185&episode_no=33")); testRipper(ripper); } - + @Test public void testWebtoonsType() throws IOException { WebtoonsRipper ripper = new WebtoonsRipper(new URL("http://www.webtoons.com/en/drama/lookism/ep-145/viewer?title_no=1049&episode_no=145")); testRipper(ripper); } - + @Test public void testGetGID() throws IOException { URL url = new URL("http://www.webtoons.com/en/drama/my-boo/ep-33/viewer?title_no=1185&episode_no=33"); WebtoonsRipper ripper = new WebtoonsRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WordpressComicRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WordpressComicRipperTest.java index d646040b..f55e5fdc 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WordpressComicRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/WordpressComicRipperTest.java @@ -43,26 +43,26 @@ public class WordpressComicRipperTest extends RippersTest { new URL("http://themonsterunderthebed.net/?comic=test-post")); testRipper(ripper); } - + @Test public void test_prismblush() throws IOException { WordpressComicRipper ripper = new WordpressComicRipper( new URL("http://prismblush.com/comic/hella-trap-pg-01/")); testRipper(ripper); } - + @Test public void test_konradokonski_1() throws IOException { WordpressComicRipper ripper = new WordpressComicRipper( new URL("http://www.konradokonski.com/sawdust/comic/get-up/")); testRipper(ripper); } - + @Test public void test_konradokonski_2() throws IOException { WordpressComicRipper ripper = new WordpressComicRipper( new URL("http://www.konradokonski.com/wiory/comic/08182008/")); testRipper(ripper); } - + @Test public void test_konradokonski_getAlbumTitle() throws IOException { URL url = new URL("http://www.konradokonski.com/sawdust/comic/get-up/"); WordpressComicRipper ripper = new WordpressComicRipper(url); @@ -77,31 +77,31 @@ public class WordpressComicRipperTest extends RippersTest { new URL("http://freeadultcomix.com/finders-feepaid-in-full-sparrow/")); testRipper(ripper); } - + @Test public void test_delvecomic() throws IOException { WordpressComicRipper ripper = new WordpressComicRipper( new URL("http://thisis.delvecomic.com/NewWP/comic/in-too-deep/")); testRipper(ripper); } - + @Test public void test_Eightmuses_download() throws IOException { WordpressComicRipper ripper = new WordpressComicRipper( new URL("https://8muses.download/lustomic-playkittens-josh-samuel-porn-comics-8-muses/")); testRipper(ripper); } - + @Test public void test_Eightmuses_getAlbumTitle() throws IOException { URL url = new URL("https://8muses.download/lustomic-playkittens-josh-samuel-porn-comics-8-muses/"); WordpressComicRipper ripper = new WordpressComicRipper(url); assertEquals("8muses.download_lustomic-playkittens-josh-samuel-porn-comics-8-muses", ripper.getAlbumTitle(url)); } - + @Test public void test_spyingwithlana_download() throws IOException { WordpressComicRipper ripper = new WordpressComicRipper( new URL("http://spyingwithlana.com/comic/the-big-hookup/")); testRipper(ripper); } - + @Test public void test_spyingwithlana_getAlbumTitle() throws IOException { URL url = new URL("http://spyingwithlana.com/comic/the-big-hookup/"); WordpressComicRipper ripper = new WordpressComicRipper(url); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XvideosRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XvideosRipperTest.java index 543ad8ca..9446b640 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XvideosRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/XvideosRipperTest.java @@ -5,9 +5,10 @@ import java.net.URL; import com.rarchives.ripme.ripper.rippers.XvideosRipper; import com.rarchives.ripme.tst.ripper.rippers.RippersTest; +import org.junit.jupiter.api.Test; public class XvideosRipperTest extends RippersTest { - + @Test public void testXhamsterAlbum1() throws IOException { XvideosRipper ripper = new XvideosRipper(new URL("https://www.xvideos.com/video23515878/dee_s_pool_toys")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YoupornRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YoupornRipperTest.java index a3da81fc..c8640cad 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YoupornRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YoupornRipperTest.java @@ -1,6 +1,7 @@ package com.rarchives.ripme.tst.ripper.rippers; import com.rarchives.ripme.ripper.rippers.YoupornRipper; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URL; @@ -8,6 +9,7 @@ import java.util.ArrayList; import java.util.List; public class YoupornRipperTest extends RippersTest { + @Test public void testYoupornRipper() throws IOException { List contentURLs = new ArrayList<>(); contentURLs.add(new URL("http://www.youporn.com/watch/7669155/mrs-li-amateur-69-orgasm/?from=categ")); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YuvutuRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YuvutuRipperTest.java index 1a304468..7cc3def9 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YuvutuRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/YuvutuRipperTest.java @@ -4,14 +4,15 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.YuvutuRipper; +import org.junit.jupiter.api.Test; public class YuvutuRipperTest extends RippersTest { - + @Test public void testYuvutuAlbum1() throws IOException { YuvutuRipper ripper = new YuvutuRipper(new URL("http://www.yuvutu.com/modules.php?name=YuGallery&action=view&set_id=127013")); testRipper(ripper); } - + @Test public void testYuvutuAlbum2() throws IOException { YuvutuRipper ripper = new YuvutuRipper(new URL("http://www.yuvutu.com/modules.php?name=YuGallery&action=view&set_id=420333")); testRipper(ripper); diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ZizkiRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ZizkiRipperTest.java index 9facf481..e12ccb5c 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ZizkiRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ZizkiRipperTest.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.ZizkiRipper; +import org.junit.jupiter.api.Test; public class ZizkiRipperTest extends RippersTest { public void testRip() throws IOException { @@ -16,7 +17,7 @@ public class ZizkiRipperTest extends RippersTest { ZizkiRipper ripper = new ZizkiRipper(url); assertEquals("dee-chorde", ripper.getGID(url)); } - + @Test public void testAlbumTitle() throws IOException { URL url = new URL("http://zizki.com/dee-chorde/we-got-spirit"); ZizkiRipper ripper = new ZizkiRipper(url); From 1402f3b8dde95da49810f1794ed39b3bf1b77d8f Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sat, 17 Aug 2019 20:04:14 -0400 Subject: [PATCH 05/17] xhamster no longer changes url domain when sanitizing --- .../ripme/ripper/rippers/XhamsterRipper.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java index 2dbcec2a..46ec7c18 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/XhamsterRipper.java @@ -44,13 +44,12 @@ public class XhamsterRipper extends AbstractHTMLRipper { @Override public URL sanitizeURL(URL url) throws MalformedURLException { - String URLToReturn = url.toExternalForm(); - URLToReturn = URLToReturn.replaceAll("xhamster\\.(com|one|desi)", "xhamster.com"); - URLToReturn = URLToReturn.replaceAll("m.xhamster\\.(com|one|desi)", "xhamster.com"); - URLToReturn = URLToReturn.replaceAll("\\w\\w\\.xhamster\\.(com|one|desi)", "xhamster.com"); - if (!isVideoUrl(url)) { - URLToReturn = URLToReturn.replaceAll("xhamster2?.com", "m.xhamster.com"); + if (isVideoUrl(url)) { + return url; } + String URLToReturn = url.toExternalForm(); + URLToReturn = URLToReturn.replaceAll("https?://\\w?\\w?\\.?xhamster\\.", "https://m.xhamster."); + URLToReturn = URLToReturn.replaceAll("https?://xhamster2\\.", "https://m.xhamster2."); URL san_url = new URL(URLToReturn); LOGGER.info("sanitized URL is " + san_url.toExternalForm()); return san_url; From f9540bd98251c403f0602735117e4cb7cceaa63b Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sat, 17 Aug 2019 20:07:15 -0400 Subject: [PATCH 06/17] Disabled broken test --- .../ripme/tst/ripper/rippers/ViewcomicRipperTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java index cc9d2409..063cc036 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/ViewcomicRipperTest.java @@ -4,10 +4,11 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.ViewcomicRipper; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; public class ViewcomicRipperTest extends RippersTest { - @Test + @Test @Disabled("Ripper broken") public void testViewcomicRipper() throws IOException { ViewcomicRipper ripper = new ViewcomicRipper(new URL("https://view-comic.com/batman-no-mans-land-vol-1/")); testRipper(ripper); From 082772be2ea1529447ff64db95a5e4f93f42ca5d Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sat, 17 Aug 2019 20:10:39 -0400 Subject: [PATCH 07/17] Updated java version used for testing as it will soon go EOL --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index e8a2c98a..8c85a9ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: java jdk: - - oraclejdk8 + - oraclejdk9 - openjdk8 after_success: - mvn clean test jacoco:report coveralls:report From a94ab586f895a7b9007a0a77f4cfa1a14674b1bb Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sun, 18 Aug 2019 12:54:31 -0400 Subject: [PATCH 08/17] Fixed cert errors with travis and oracleJDK --- .travis.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.travis.yml b/.travis.yml index 8c85a9ab..0c2eeca6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,5 +2,13 @@ language: java jdk: - oraclejdk9 - openjdk8 + +matrix: + include: + - jdk: openjdk9 + before_install: + - rm "${JAVA_HOME}/lib/security/cacerts" + - ln -s /etc/ssl/certs/java/cacerts "${JAVA_HOME}/lib/security/cacerts" + after_success: - mvn clean test jacoco:report coveralls:report From 29a63741c2b3548831bc1b6195e88fa4c7ee55ce Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sun, 18 Aug 2019 12:56:08 -0400 Subject: [PATCH 09/17] Disabled flaky tests --- .../ripme/tst/ripper/rippers/LusciousRipperTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java index 6536aceb..6362dcc6 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/LusciousRipperTest.java @@ -4,10 +4,11 @@ import java.io.IOException; import java.net.URL; import com.rarchives.ripme.ripper.rippers.LusciousRipper; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; public class LusciousRipperTest extends RippersTest { - @Test + @Test @Disabled("Flaky in the CI") public void testPahealRipper() throws IOException { // a photo set LusciousRipper ripper = new LusciousRipper( @@ -20,7 +21,7 @@ public class LusciousRipperTest extends RippersTest { LusciousRipper ripper = new LusciousRipper(url); assertEquals("h-na-alice-wa-suki-desu-ka-do-you-like-alice-when_321609", ripper.getGID(url)); } - @Test + @Test @Disabled("Flaky in the CI") public void testGetNextPage() throws IOException { URL multiPageAlbumUrl = new URL("https://luscious.net/albums/women-of-color_58/"); LusciousRipper multiPageRipper = new LusciousRipper(multiPageAlbumUrl); From 22b4ccbd6306ec580a40ddc82a8123cd2b093cff Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sun, 18 Aug 2019 12:58:08 -0400 Subject: [PATCH 10/17] Formatting --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 0c2eeca6..ccf3d504 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,6 @@ matrix: before_install: - rm "${JAVA_HOME}/lib/security/cacerts" - ln -s /etc/ssl/certs/java/cacerts "${JAVA_HOME}/lib/security/cacerts" - + after_success: - mvn clean test jacoco:report coveralls:report From d4a17784514a76d3cfec9456534bc7fbac4dadf3 Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sun, 18 Aug 2019 13:29:32 -0400 Subject: [PATCH 11/17] Removed broken jdk test --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ccf3d504..2fb28575 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,5 @@ language: java jdk: - - oraclejdk9 - openjdk8 matrix: From 53866a527c5f800f613bcacde7284a539fb430eb Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Sun, 18 Aug 2019 13:33:55 -0400 Subject: [PATCH 12/17] unbroke ci --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 2fb28575..ccf3d504 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ language: java jdk: + - oraclejdk9 - openjdk8 matrix: From 7865d97c1593670be1831ee7610828e81e4081ea Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Mon, 19 Aug 2019 16:19:09 -0400 Subject: [PATCH 13/17] Fixed travis config --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index ccf3d504..0fd1b17f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,4 @@ language: java -jdk: - - oraclejdk9 - - openjdk8 matrix: include: @@ -9,6 +6,7 @@ matrix: before_install: - rm "${JAVA_HOME}/lib/security/cacerts" - ln -s /etc/ssl/certs/java/cacerts "${JAVA_HOME}/lib/security/cacerts" + - jdk: openjdk8 after_success: - mvn clean test jacoco:report coveralls:report From 1c555c01f1ca2026ae94c06a0487d3be6228d768 Mon Sep 17 00:00:00 2001 From: rtsketo Date: Thu, 22 Aug 2019 06:00:47 +0300 Subject: [PATCH 14/17] Fixes for gfycat thumbs urls. --- .../ripme/ripper/rippers/GfycatRipper.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java index 52a19b74..7c49fbba 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java @@ -29,7 +29,7 @@ public class GfycatRipper extends AbstractHTMLRipper { public GfycatRipper(URL url) throws IOException { - super(url); + super(new URL(url.toExternalForm().split("-")[0].replace("thumbs.", ""))); } @Override @@ -76,15 +76,16 @@ public class GfycatRipper extends AbstractHTMLRipper { @Override public String getGID(URL url) throws MalformedURLException { - Pattern p = Pattern.compile("^https?://[wm.]*gfycat\\.com/@?([a-zA-Z0-9]+).*$"); + Pattern p = Pattern.compile("^https?://(thumbs\\.|[wm\\.]*)gfycat\\.com/@?([a-zA-Z0-9]+).*$"); Matcher m = p.matcher(url.toExternalForm()); - if (m.matches()) { - return m.group(1); - } - + + if (m.matches()) + return m.group(2); + throw new MalformedURLException( - "Expected gfycat.com format:" - + "gfycat.com/id" + "Expected gfycat.com format: " + + "gfycat.com/id or " + + "thumbs.gfycat.com/id.gif" + " Got: " + url); } @@ -92,7 +93,7 @@ public class GfycatRipper extends AbstractHTMLRipper { t = t.replaceAll("\n" + " \n" + " ", ""); - t.replaceAll("\n" + + t = t.replaceAll("\n" + "", ""); t = t.replaceAll("\n", ""); t = t.replaceAll("=\"\"", ""); From 28dc3f796f2973a1237834b1bbabeedf84fbf210 Mon Sep 17 00:00:00 2001 From: rtsketo Date: Thu, 22 Aug 2019 14:35:24 +0300 Subject: [PATCH 15/17] Fixed update batch file to work in directories with spaces. --- .../java/com/rarchives/ripme/ui/UpdateUtils.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java index 07e7f496..f947cd6d 100644 --- a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java +++ b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java @@ -23,7 +23,7 @@ import com.rarchives.ripme.utils.Utils; public class UpdateUtils { private static final Logger logger = Logger.getLogger(UpdateUtils.class); - private static final String DEFAULT_VERSION = "1.7.86"; + private static final String DEFAULT_VERSION = "1.7.87"; private static final String REPO_NAME = "ripmeapp/ripme"; private static final String updateJsonURL = "https://raw.githubusercontent.com/" + REPO_NAME + "/master/ripme.json"; private static String mainFileName; @@ -264,12 +264,14 @@ public class UpdateUtils { // Windows final String batchFile = "update_ripme.bat"; final String batchPath = new File(batchFile).getAbsolutePath(); - String script = "@echo off\r\n" + "timeout 1\r\n" + "copy " + updateFileName + " " + mainFileName + "\r\n" - + "del " + updateFileName + "\r\n"; - if (shouldLaunch) { - script += mainFileName + "\r\n"; - } - script += "del " + batchPath + "\r\n"; + String script = "@echo off\r\n" + "timeout 1\r\n" + + "copy \"" + updateFileName + "\" \"" + mainFileName + "\"\r\n" + + "del \"" + updateFileName + "\"\r\n"; + + if (shouldLaunch) + script += "\"" + mainFileName + "\"\r\n"; + script += "del \"" + batchPath + "\"\r\n"; + final String[] batchExec = new String[] { batchPath }; // Create updater script try (BufferedWriter bw = new BufferedWriter(new FileWriter(batchFile))) { From 132382b402cda35c6e1376e3d5ae6db80095efa7 Mon Sep 17 00:00:00 2001 From: rtsketo Date: Thu, 22 Aug 2019 14:36:51 +0300 Subject: [PATCH 16/17] Fixed update batch file to work in directories with spaces. --- src/main/java/com/rarchives/ripme/ui/UpdateUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java index f947cd6d..094da068 100644 --- a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java +++ b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java @@ -23,7 +23,7 @@ import com.rarchives.ripme.utils.Utils; public class UpdateUtils { private static final Logger logger = Logger.getLogger(UpdateUtils.class); - private static final String DEFAULT_VERSION = "1.7.87"; + private static final String DEFAULT_VERSION = "1.7.86"; private static final String REPO_NAME = "ripmeapp/ripme"; private static final String updateJsonURL = "https://raw.githubusercontent.com/" + REPO_NAME + "/master/ripme.json"; private static String mainFileName; From dcc1d2f06c7ecbd5e3575d563d5c418b42451b83 Mon Sep 17 00:00:00 2001 From: cyian-1756 Date: Thu, 22 Aug 2019 23:58:39 -0400 Subject: [PATCH 17/17] 1.7.87: Added ripper for allporncomic.com; Fixed Xhamster ripper; Added support xhamster2.com and xhamster.desi; Fixes for gfycat thumbs urls --- pom.xml | 2 +- ripme.json | 7 ++++--- src/main/java/com/rarchives/ripme/ui/UpdateUtils.java | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 77300393..b87f47ed 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ com.rarchives.ripme ripme jar - 1.7.86 + 1.7.87 ripme http://rip.rarchives.com diff --git a/ripme.json b/ripme.json index 2c91fc8b..1d8b2097 100644 --- a/ripme.json +++ b/ripme.json @@ -1,7 +1,7 @@ { - "latestVersion": "1.7.86", - "currentHash": "d78f7dfaa8ef55575a8485cdf93bbd09e3ea9a3bd224e84e970bcdd0a51d5305", + "currentHash": "52dfb707d6247f44949c0d97b19c7815dc848b26837b98ae561c0dea20993a12", "changeList": [ + "1.7.87: Added ripper for allporncomic.com; Fixed Xhamster ripper; Added support xhamster2.com and xhamster.desi; Fixes for gfycat thumbs urls", "1.7.86: Added Meituri Ripper; fixed -u flag; Fixed pornhub ripper; Xhamster ripper can now queue users videos", "1.7.85: Fixed instagram ripper; Flickr ripper now downloads largest image", "1.7.84: Fixed instagram ripper; xhamster ripper now accepts urls with page numbers; Fixed Deviantart Ripper", @@ -258,5 +258,6 @@ "1.0.4: Fixed spaces-in-directory bug", "1.0.3: Added VK.com ripper", "1.0.1: Added auto-update functionality" - ] + ], + "latestVersion": "1.7.87" } \ No newline at end of file diff --git a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java index 094da068..f947cd6d 100644 --- a/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java +++ b/src/main/java/com/rarchives/ripme/ui/UpdateUtils.java @@ -23,7 +23,7 @@ import com.rarchives.ripme.utils.Utils; public class UpdateUtils { private static final Logger logger = Logger.getLogger(UpdateUtils.class); - private static final String DEFAULT_VERSION = "1.7.86"; + private static final String DEFAULT_VERSION = "1.7.87"; private static final String REPO_NAME = "ripmeapp/ripme"; private static final String updateJsonURL = "https://raw.githubusercontent.com/" + REPO_NAME + "/master/ripme.json"; private static String mainFileName;