1
0
mirror of https://github.com/RipMeApp/ripme.git synced 2025-08-25 23:06:22 +02:00

Merge branch 'master' of https://github.com/RipMeApp/ripme.git into listal

This commit is contained in:
Tushar
2019-02-06 11:58:56 +05:30
8 changed files with 36 additions and 20 deletions

View File

@@ -4,7 +4,7 @@
<groupId>com.rarchives.ripme</groupId> <groupId>com.rarchives.ripme</groupId>
<artifactId>ripme</artifactId> <artifactId>ripme</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.7.77</version> <version>1.7.78</version>
<name>ripme</name> <name>ripme</name>
<url>http://rip.rarchives.com</url> <url>http://rip.rarchives.com</url>
<properties> <properties>

View File

@@ -1,6 +1,8 @@
{ {
"currentHash": "34f326ec23f3c1ce8df1147c1d9660a1dd7b85074e79351c9295bd74ac8f127a", "latestVersion": "1.7.78",
"currentHash": "957e7362f7f4a567883cc92368e5bb543c8a277c37f913b5752cee6ec43f611c",
"changeList": [ "changeList": [
"1.7.78: Fixed gfycat ripper; Fixed E621 ripper; Added support for new xhamster url format; Now supports furaffinty scraps",
"1.7.77: Reduced log spam; HQporner now supports actress/category/studio/top links; Improved luscious ripper; Fixed Pornhub video ripper; Tumblr ripper now always downloads highest quality available", "1.7.77: Reduced log spam; HQporner now supports actress/category/studio/top links; Improved luscious ripper; Fixed Pornhub video ripper; Tumblr ripper now always downloads highest quality available",
"1.7.76: Fixed remember url history", "1.7.76: Fixed remember url history",
"1.7.75: Fix e-hentai ripper; added comixfap ripper; fixed writting urls to files on windows; Fixed update screen issues; Added support for hentaidude; Fixed erome ripper", "1.7.75: Fix e-hentai ripper; added comixfap ripper; fixed writting urls to files on windows; Fixed update screen issues; Added support for hentaidude; Fixed erome ripper",
@@ -248,6 +250,5 @@
"1.0.4: Fixed spaces-in-directory bug", "1.0.4: Fixed spaces-in-directory bug",
"1.0.3: Added VK.com ripper", "1.0.3: Added VK.com ripper",
"1.0.1: Added auto-update functionality" "1.0.1: Added auto-update functionality"
], ]
"latestVersion": "1.7.77"
} }

View File

@@ -219,16 +219,21 @@ public class FuraffinityRipper extends AbstractHTMLRipper {
@Override @Override
public String getGID(URL url) throws MalformedURLException { public String getGID(URL url) throws MalformedURLException {
Pattern p = Pattern // Gallery
.compile("^https?://www\\.furaffinity\\.net/gallery/([-_.0-9a-zA-Z]+).*$"); Pattern p = Pattern.compile("^https?://www\\.furaffinity\\.net/gallery/([-_.0-9a-zA-Z]+).*$");
Matcher m = p.matcher(url.toExternalForm()); Matcher m = p.matcher(url.toExternalForm());
if (m.matches()) { if (m.matches()) {
return m.group(1); return m.group(1);
} }
throw new MalformedURLException("Expected furaffinity.net URL format: " //Scraps
+ "www.furaffinity.net/gallery/username - got " + url p = Pattern.compile("^https?://www\\.furaffinity\\.net/scraps/([-_.0-9a-zA-Z]+).*$");
+ " instead"); m = p.matcher(url.toExternalForm());
if (m.matches()) {
return m.group(1);
}
throw new MalformedURLException("Unable to find images in" + url);
} }

View File

@@ -145,15 +145,13 @@ public class ImagefapRipper extends AbstractHTMLRipper {
try { try {
// Attempt to use album title as GID // Attempt to use album title as GID
String title = getFirstPage().title(); String title = getFirstPage().title();
Pattern p = Pattern.compile("^Porn pics of (.*) \\(Page 1\\)$"); title = title.replace("Porn Pics & Porn GIFs", "");
Matcher m = p.matcher(title); title = title.replace(" ", "_");
if (m.matches()) { String toReturn = getHost() + "_" + title + "_" + getGID(url);
return getHost() + "_" + m.group(1) + "_" + getGID(url); return toReturn.replaceAll("__", "_");
}
} catch (IOException e) { } catch (IOException e) {
// Fall back to default album naming convention return super.getAlbumTitle(url);
} }
return super.getAlbumTitle(url);
} }
private String getFullSizedImage(String pageURL) { private String getFullSizedImage(String pageURL) {

View File

@@ -45,6 +45,7 @@ public class XhamsterRipper extends AbstractHTMLRipper {
@Override @Override
public URL sanitizeURL(URL url) throws MalformedURLException { public URL sanitizeURL(URL url) throws MalformedURLException {
String URLToReturn = url.toExternalForm(); String URLToReturn = url.toExternalForm();
URLToReturn = URLToReturn.replaceAll("xhamster.one", "xhamster.com");
URLToReturn = URLToReturn.replaceAll("m.xhamster.com", "xhamster.com"); URLToReturn = URLToReturn.replaceAll("m.xhamster.com", "xhamster.com");
URLToReturn = URLToReturn.replaceAll("\\w\\w.xhamster.com", "xhamster.com"); URLToReturn = URLToReturn.replaceAll("\\w\\w.xhamster.com", "xhamster.com");
URL san_url = new URL(URLToReturn.replaceAll("xhamster.com", "m.xhamster.com")); URL san_url = new URL(URLToReturn.replaceAll("xhamster.com", "m.xhamster.com"));
@@ -113,17 +114,17 @@ public class XhamsterRipper extends AbstractHTMLRipper {
@Override @Override
public boolean canRip(URL url) { public boolean canRip(URL url) {
Pattern p = Pattern.compile("^https?://([\\w\\w]*\\.)?xhamster\\.com/photos/gallery/.*?(\\d+)$"); Pattern p = Pattern.compile("^https?://([\\w\\w]*\\.)?xhamster\\.(com|one)/photos/gallery/.*?(\\d+)$");
Matcher m = p.matcher(url.toExternalForm()); Matcher m = p.matcher(url.toExternalForm());
if (m.matches()) { if (m.matches()) {
return true; return true;
} }
p = Pattern.compile("^https?://[\\w\\w.]*xhamster\\.com/users/([a-zA-Z0-9_-]+)/photos"); p = Pattern.compile("^https?://[\\w\\w.]*xhamster\\.(com|one)/users/([a-zA-Z0-9_-]+)/photos");
m = p.matcher(url.toExternalForm()); m = p.matcher(url.toExternalForm());
if (m.matches()) { if (m.matches()) {
return true; return true;
} }
p = Pattern.compile("^https?://.*xhamster\\.com/(movies|videos)/.*$"); p = Pattern.compile("^https?://.*xhamster\\.(com|one)/(movies|videos)/.*$");
m = p.matcher(url.toExternalForm()); m = p.matcher(url.toExternalForm());
if (m.matches()) { if (m.matches()) {
return true; return true;

View File

@@ -22,7 +22,7 @@ import com.rarchives.ripme.utils.Utils;
public class UpdateUtils { public class UpdateUtils {
private static final Logger logger = Logger.getLogger(UpdateUtils.class); private static final Logger logger = Logger.getLogger(UpdateUtils.class);
private static final String DEFAULT_VERSION = "1.7.77"; private static final String DEFAULT_VERSION = "1.7.78";
private static final String REPO_NAME = "ripmeapp/ripme"; private static final String REPO_NAME = "ripmeapp/ripme";
private static final String updateJsonURL = "https://raw.githubusercontent.com/" + REPO_NAME + "/master/ripme.json"; private static final String updateJsonURL = "https://raw.githubusercontent.com/" + REPO_NAME + "/master/ripme.json";
private static final String mainFileName = "ripme.jar"; private static final String mainFileName = "ripme.jar";

View File

@@ -6,11 +6,17 @@ import java.net.URL;
import com.rarchives.ripme.ripper.rippers.FuraffinityRipper; import com.rarchives.ripme.ripper.rippers.FuraffinityRipper;
public class FuraffinityRipperTest extends RippersTest { public class FuraffinityRipperTest extends RippersTest {
public void testFuraffinityAlbum() throws IOException { public void testFuraffinityAlbum() throws IOException {
FuraffinityRipper ripper = new FuraffinityRipper(new URL("https://www.furaffinity.net/gallery/spencerdragon/")); FuraffinityRipper ripper = new FuraffinityRipper(new URL("https://www.furaffinity.net/gallery/spencerdragon/"));
testRipper(ripper); testRipper(ripper);
} }
public void testFuraffinityScrap() throws IOException {
FuraffinityRipper ripper = new FuraffinityRipper(new URL("http://www.furaffinity.net/scraps/sssonic2/"));
testRipper(ripper);
}
public void testGetGID() throws IOException { public void testGetGID() throws IOException {
URL url = new URL("https://www.furaffinity.net/gallery/mustardgas/"); URL url = new URL("https://www.furaffinity.net/gallery/mustardgas/");
FuraffinityRipper ripper = new FuraffinityRipper(url); FuraffinityRipper ripper = new FuraffinityRipper(url);

View File

@@ -24,4 +24,9 @@ public class ImagefapRipperTest extends RippersTest {
testRipper(ripper); testRipper(ripper);
} }
} }
public void testImagefapGetAlbumTitle() throws IOException {
URL url = new URL("https://www.imagefap.com/gallery.php?gid=7789753");
ImagefapRipper ripper = new ImagefapRipper(url);
assertEquals("imagefap_Red.Heels.Lover.In.Love_7789753", ripper.getAlbumTitle(url));
}
} }