Skip to content

Commit 5bf8652

Browse files
committed
Update EromeRipperTest.java
1 parent 79b4c9e commit 5bf8652

File tree

2 files changed

+80
-23
lines changed

2 files changed

+80
-23
lines changed

src/main/java/com/rarchives/ripme/ripper/rippers/EromeRipper.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class EromeRipper extends AbstractHTMLRipper {
3232
boolean rippingProfile;
3333
private HashMap<String, String> cookies = new HashMap<>();
3434

35-
public EromeRipper (URL url) throws IOException {
35+
public EromeRipper(URL url) throws IOException {
3636
super(url);
3737
}
3838

@@ -94,7 +94,6 @@ public URL sanitizeURL(URL url) throws MalformedURLException, URISyntaxException
9494
return new URI(url.toExternalForm().replaceAll("https?://erome.com", "https://www.erome.com")).toURL();
9595
}
9696

97-
9897
@Override
9998
public List<String> getURLsFromPage(Document doc) {
10099
return getMediaFromPage(doc);
@@ -133,7 +132,8 @@ private List<String> getMediaFromPage(Document doc) {
133132
List<String> results = new ArrayList<>();
134133
for (Element el : doc.select("img.img-front")) {
135134
if (el.hasAttr("data-src")) {
136-
//to add images that are not loaded( as all images are lasyloaded as we scroll).
135+
// to add images that are not loaded
136+
// (all images are lasy-loaded as we scroll)
137137
results.add(el.attr("data-src"));
138138
} else if (el.hasAttr("src")) {
139139
if (el.attr("src").startsWith("https:")) {
@@ -146,16 +146,14 @@ private List<String> getMediaFromPage(Document doc) {
146146
for (Element el : doc.select("source[label=HD]")) {
147147
if (el.attr("src").startsWith("https:")) {
148148
results.add(el.attr("src"));
149-
}
150-
else {
149+
} else {
151150
results.add("https:" + el.attr("src"));
152151
}
153152
}
154153
for (Element el : doc.select("source[label=SD]")) {
155154
if (el.attr("src").startsWith("https:")) {
156155
results.add(el.attr("src"));
157-
}
158-
else {
156+
} else {
159157
results.add("https:" + el.attr("src"));
160158
}
161159
}

src/test/java/com/rarchives/ripme/tst/ripper/rippers/EromeRipperTest.java

Lines changed: 75 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,54 +12,113 @@
1212
import com.rarchives.ripme.ripper.rippers.EromeRipper;
1313

1414
public class EromeRipperTest extends RippersTest {
15+
// Note: this album has been deleted, but the GID can still be extracted
16+
public static final String DELETED_ALBUM_GID_TEST = "https://www.erome.com/a/KbDAM1XT";
17+
18+
// User page with 2 video album posts
19+
public static final String USER_PAGE_JAY_JENNA = "https://www.erome.com/Jay-Jenna";
20+
21+
// 35 photos, no videos
22+
public static final String SHOKO_TAKAHASHI_PHOTO_ALBUM = "https://www.erome.com/a/Tak8F2h6";
23+
24+
// no photos, 1 video
25+
public static final String VIDEO_ALBUM_SINGLE_VIDEO_RIDING = "https://www.erome.com/a/P0x5Ambn";
26+
27+
// no photos, 2 videos
28+
public static final String VIDEO_ALBUM_MULTI_VIDEO_FUN_AT_SEA = "https://www.erome.com/a/jEUFu6pi";
29+
30+
// 2 photos, 1 video, video is the last item
31+
public static final String VIDEO_PHOTO_ALBUM_VIDEO_LAST_THICK_ASIAN = "https://www.erome.com/a/4EqqN5LR";
32+
33+
// 1 video, 1 photo, video is the first item
34+
public static final String VIDEO_PHOTO_ALBUM_VIDEO_FIRST_ARGENTINA = "https://www.erome.com/a/Stjsocxo";
35+
1536
@Test
16-
public void testGetGIDProfilePage() throws IOException, URISyntaxException {
17-
URL url = new URI("https://www.erome.com/Jay-Jenna").toURL();
37+
public void testGetGIDAlbum() throws IOException, URISyntaxException {
38+
// Note: this album has been deleted, but the GID can still be extracted
39+
URL url = new URI(DELETED_ALBUM_GID_TEST).toURL();
1840
EromeRipper ripper = new EromeRipper(url);
19-
Assertions.assertEquals("Jay-Jenna", ripper.getGID(url));
41+
Assertions.assertEquals("KbDAM1XT", ripper.getGID(url));
2042
}
2143

2244
@Test
23-
public void testGetGIDAlbum() throws IOException, URISyntaxException {
24-
URL url = new URI("https://www.erome.com/a/KbDAM1XT").toURL();
45+
public void testGetGIDProfilePage() throws IOException, URISyntaxException {
46+
URL url = new URI(USER_PAGE_JAY_JENNA).toURL();
2547
EromeRipper ripper = new EromeRipper(url);
26-
Assertions.assertEquals("KbDAM1XT", ripper.getGID(url));
48+
Assertions.assertEquals("Jay-Jenna", ripper.getGID(url));
2749
}
2850

2951
@Test
3052
public void testGetAlbumsToQueue() throws IOException, URISyntaxException {
31-
URL url = new URI("https://www.erome.com/Jay-Jenna").toURL();
53+
// User page with 2 video album posts
54+
URL url = new URI(USER_PAGE_JAY_JENNA).toURL();
3255
EromeRipper ripper = new EromeRipper(url);
3356
assert (2 >= ripper.getAlbumsToQueue(ripper.getFirstPage()).size());
3457
}
3558

3659
@Test
3760
public void testPageContainsAlbums() throws IOException, URISyntaxException {
38-
URL url = new URI("https://www.erome.com/Jay-Jenna").toURL();
61+
URL url = new URI(USER_PAGE_JAY_JENNA).toURL();
3962
EromeRipper ripper = new EromeRipper(url);
4063
assert (ripper.pageContainsAlbums(url));
41-
assert (!ripper.pageContainsAlbums(new URI("https://www.erome.com/a/KbDAM1XT").toURL()));
4264
}
4365

4466
@Test
45-
public void testRip() throws IOException, URISyntaxException {
46-
URL url = new URI("https://www.erome.com/a/Tak8F2h6").toURL();
67+
public void testEmptyPageDoesNotContainAlbums() throws IOException, URISyntaxException {
68+
URL url = new URI(DELETED_ALBUM_GID_TEST).toURL();
69+
EromeRipper ripper = new EromeRipper(url);
70+
assert (!ripper.pageContainsAlbums(url));
71+
}
72+
73+
@Test
74+
public void testGetURLsFromPhotoAlbumPage() throws IOException, URISyntaxException {
75+
// 35 photos, no videos
76+
URL url = new URI(SHOKO_TAKAHASHI_PHOTO_ALBUM).toURL();
77+
EromeRipper ripper = new EromeRipper(url);
78+
assert (35 == ripper.getURLsFromPage(ripper.getFirstPage()).size());
79+
}
80+
81+
@Test
82+
public void testPhotoAlbumRip() throws IOException, URISyntaxException {
83+
// 35 photos, no videos
84+
URL url = new URI(SHOKO_TAKAHASHI_PHOTO_ALBUM).toURL();
4785
EromeRipper ripper = new EromeRipper(url);
4886
testRipper(ripper);
4987
}
5088

5189
@Test
5290
@Tag("slow")
53-
public void testVideoAlbumRip() throws IOException, URISyntaxException {
54-
URL url = new URI("https://www.erome.com/a/jEUFu6pi").toURL();
91+
public void testVideoAlbumWithSingleItemRip() throws IOException, URISyntaxException {
92+
// no photos, 1 video
93+
URL url = new URI(VIDEO_ALBUM_SINGLE_VIDEO_RIDING).toURL();
5594
EromeRipper ripper = new EromeRipper(url);
5695
testRipper(ripper);
5796
}
5897

5998
@Test
60-
public void testGetURLsFromPage() throws IOException, URISyntaxException {
61-
URL url = new URI("https://www.erome.com/a/Tak8F2h6").toURL();
99+
@Tag("slow")
100+
public void testVideoAlbumWithMultipleItemsRip() throws IOException, URISyntaxException {
101+
// no photos, 2 videos
102+
URL url = new URI(VIDEO_ALBUM_MULTI_VIDEO_FUN_AT_SEA).toURL();
62103
EromeRipper ripper = new EromeRipper(url);
63-
assert (35 == ripper.getURLsFromPage(ripper.getFirstPage()).size());
104+
testRipper(ripper);
105+
}
106+
107+
@Test
108+
@Tag("slow")
109+
public void testAlbumWithBothVideoLastRip() throws IOException, URISyntaxException {
110+
// 2 photos, 1 video, video is the last item
111+
URL url = new URI(VIDEO_PHOTO_ALBUM_VIDEO_LAST_THICK_ASIAN).toURL();
112+
EromeRipper ripper = new EromeRipper(url);
113+
testRipper(ripper);
114+
}
115+
116+
@Test
117+
@Tag("slow")
118+
public void testAlbumWithBothVideoFirstRip() throws IOException, URISyntaxException {
119+
// 2 photos, 1 video
120+
URL url = new URI(VIDEO_PHOTO_ALBUM_VIDEO_FIRST_ARGENTINA).toURL();
121+
EromeRipper ripper = new EromeRipper(url);
122+
testRipper(ripper);
64123
}
65124
}

0 commit comments

Comments
 (0)