aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorZeb Piasecki <zeb@zebulon.dev>2021-01-25 16:10:44 +0000
committerZeb Piasecki <zeb@zebulon.dev>2021-01-25 16:33:00 +0000
commit2bc7e40f78e7f23cdb662f03c38f39438dcc468c (patch)
tree4e9c5aa22b0ceb1be659032f44c97f8486d2efb8 /app
parent7ca511d3f18e6bb626db413d5d249da4502ef862 (diff)
downloadinfinity-for-reddit-2bc7e40f78e7f23cdb662f03c38f39438dcc468c.tar
infinity-for-reddit-2bc7e40f78e7f23cdb662f03c38f39438dcc468c.tar.gz
infinity-for-reddit-2bc7e40f78e7f23cdb662f03c38f39438dcc468c.tar.bz2
infinity-for-reddit-2bc7e40f78e7f23cdb662f03c38f39438dcc468c.tar.lz
infinity-for-reddit-2bc7e40f78e7f23cdb662f03c38f39438dcc468c.tar.xz
infinity-for-reddit-2bc7e40f78e7f23cdb662f03c38f39438dcc468c.tar.zst
infinity-for-reddit-2bc7e40f78e7f23cdb662f03c38f39438dcc468c.zip
Fix issue with gfycat/redgifs occasionally 404ing due to non-lowercase id
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java b/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java
index 809f0806..2ba685eb 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java
@@ -403,7 +403,7 @@ public class ParsePost {
if (gfycatId.contains("-")) {
gfycatId = gfycatId.substring(0, gfycatId.indexOf('-'));
}
- post.setGfycatId(gfycatId);
+ post.setGfycatId(gfycatId.toLowerCase());
} else if (authority != null && authority.contains("redgifs.com")) {
String gfycatId = url.substring(url.lastIndexOf("/") + 1);
if (gfycatId.contains("-")) {
@@ -411,7 +411,7 @@ public class ParsePost {
}
post.setIsRedgifs(true);
post.setVideoUrl(url);
- post.setGfycatId(gfycatId);
+ post.setGfycatId(gfycatId.toLowerCase());
}
} catch (IllegalArgumentException ignore) { }
} else if (post.getPostType() == Post.LINK_TYPE || post.getPostType() == Post.NO_PREVIEW_LINK_TYPE) {
@@ -449,16 +449,21 @@ public class ParsePost {
} else if (post.getPostType() == Post.LINK_TYPE) {
Uri uri = Uri.parse(url);
String authority = uri.getAuthority();
+
+ // Gyfcat ids must be lowercase to resolve to a video through the api, we are not
+ // guaranteed to get an id that is all lowercase.
+ String gfycatId = url.substring(url.lastIndexOf("/") + 1).toLowerCase();
+
if (authority != null && (authority.contains("gfycat.com"))) {
post.setPostType(Post.VIDEO_TYPE);
post.setIsGfycat(true);
post.setVideoUrl(url);
- post.setGfycatId(url.substring(url.lastIndexOf("/") + 1));
+ post.setGfycatId(gfycatId);
} else if (authority != null && authority.contains("redgifs.com")) {
post.setPostType(Post.VIDEO_TYPE);
post.setIsRedgifs(true);
post.setVideoUrl(url);
- post.setGfycatId(url.substring(url.lastIndexOf("/") + 1));
+ post.setGfycatId(gfycatId);
}
}
}