diff options
author | Zeb Piasecki <zeb@zebulon.dev> | 2021-01-25 16:10:44 +0000 |
---|---|---|
committer | Zeb Piasecki <zeb@zebulon.dev> | 2021-01-25 16:33:00 +0000 |
commit | 2bc7e40f78e7f23cdb662f03c38f39438dcc468c (patch) | |
tree | 4e9c5aa22b0ceb1be659032f44c97f8486d2efb8 | |
parent | 7ca511d3f18e6bb626db413d5d249da4502ef862 (diff) | |
download | infinity-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
-rw-r--r-- | app/src/main/java/ml/docilealligator/infinityforreddit/post/ParsePost.java | 13 |
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); } } } |