1
0
mirror of https://github.com/RipMeApp/ripme.git synced 2025-08-28 08:10:11 +02:00

Tumblr ripper now can rip from liked pages

This commit is contained in:
cyian-1756
2018-12-04 20:35:21 -05:00
parent 4021a1b323
commit f81ddb8b3d

View File

@@ -34,7 +34,8 @@ public class TumblrRipper extends AlbumRipper {
private enum ALBUM_TYPE { private enum ALBUM_TYPE {
SUBDOMAIN, SUBDOMAIN,
TAG, TAG,
POST POST,
LIKED
} }
private ALBUM_TYPE albumType; private ALBUM_TYPE albumType;
private String subdomain, tagName, postNumber; private String subdomain, tagName, postNumber;
@@ -237,7 +238,12 @@ public class TumblrRipper extends AlbumRipper {
URL fileURL; URL fileURL;
posts = json.getJSONObject("response").getJSONArray("posts"); if (albumType == ALBUM_TYPE.LIKED) {
posts = json.getJSONObject("response").getJSONArray("liked_posts");
} else {
posts = json.getJSONObject("response").getJSONArray("posts");
}
if (posts.length() == 0) { if (posts.length() == 0) {
LOGGER.info(" Zero posts returned."); LOGGER.info(" Zero posts returned.");
return false; return false;
@@ -291,6 +297,16 @@ public class TumblrRipper extends AlbumRipper {
private String getTumblrApiURL(String mediaType, int offset) { private String getTumblrApiURL(String mediaType, int offset) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
if (albumType == ALBUM_TYPE.LIKED) {
sb.append("http://api.tumblr.com/v2/blog/")
.append(subdomain)
.append("/likes")
.append("?api_key=")
.append(getApiKey())
.append("&offset=")
.append(offset);
return sb.toString();
}
if (albumType == ALBUM_TYPE.POST) { if (albumType == ALBUM_TYPE.POST) {
sb.append("http://api.tumblr.com/v2/blog/") sb.append("http://api.tumblr.com/v2/blog/")
.append(subdomain) .append(subdomain)
@@ -312,6 +328,7 @@ public class TumblrRipper extends AlbumRipper {
sb.append("&tag=") sb.append("&tag=")
.append(tagName); .append(tagName);
} }
return sb.toString(); return sb.toString();
} }
@@ -354,6 +371,15 @@ public class TumblrRipper extends AlbumRipper {
this.subdomain = m.group(1); this.subdomain = m.group(1);
return this.subdomain; return this.subdomain;
} }
// Likes url
p = Pattern.compile("https?://([a-z0-9_-]+).tumblr.com/likes");
m = p.matcher(url.toExternalForm());
if (m.matches()) {
this.albumType = ALBUM_TYPE.LIKED;
this.subdomain = m.group(1);
return this.subdomain + "_liked";
}
throw new MalformedURLException("Expected format: http://subdomain[.tumblr.com][/tagged/tag|/post/postno]"); throw new MalformedURLException("Expected format: http://subdomain[.tumblr.com][/tagged/tag|/post/postno]");
} }