From 10c3624876694a5d43d72206b8401db9ec44a22e Mon Sep 17 00:00:00 2001 From: PaaaulZ <46759927+PaaaulZ@users.noreply.github.com> Date: Sat, 19 Dec 2020 01:37:36 +0100 Subject: [PATCH] Fixed #1795 and added new test --- .../com/rarchives/ripme/ripper/rippers/GfycatRipper.java | 6 +++--- .../ripme/tst/ripper/rippers/GfycatRipperTest.java | 9 +++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java index 37b2d5ae..c542c6dc 100644 --- a/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java +++ b/src/main/java/com/rarchives/ripme/ripper/rippers/GfycatRipper.java @@ -57,7 +57,7 @@ public class GfycatRipper extends AbstractHTMLRipper { } public boolean isProfile() { - Pattern p = Pattern.compile("^https?://[wm.]*gfycat\\.com/@([a-zA-Z0-9]+).*$"); + Pattern p = Pattern.compile("^https?://[wm.]*gfycat\\.com/@([a-zA-Z0-9\\.\\-\\_]+).*$"); Matcher m = p.matcher(url.toExternalForm()); return m.matches(); } @@ -79,11 +79,11 @@ public class GfycatRipper extends AbstractHTMLRipper { @Override public String getGID(URL url) throws MalformedURLException { - Pattern p = Pattern.compile("^https?://(thumbs\\.|[wm\\.]*)gfycat\\.com/@?([a-zA-Z0-9]+).*$"); + Pattern p = Pattern.compile("^https?://(?:thumbs\\.|[wm\\.]*)gfycat\\.com/@?([a-zA-Z0-9\\.\\-\\_]+).*$"); Matcher m = p.matcher(url.toExternalForm()); if (m.matches()) - return m.group(2); + return m.group(1); throw new MalformedURLException( "Expected gfycat.com format: " diff --git a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java index 019350ad..39c14673 100644 --- a/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java +++ b/src/test/java/com/rarchives/ripme/tst/ripper/rippers/GfycatRipperTest.java @@ -44,4 +44,13 @@ public class GfycatRipperTest extends RippersTest { GfycatRipper ripper = new GfycatRipper(new URL("https://gfycat.com/amp/TemptingExcellentIchthyosaurs")); testRipper(ripper); } + + /** + * Rips a Gfycat profile with special characters in username + * @throws IOException + */ + public void testGfycatSpecialChar() throws IOException { + GfycatRipper ripper = new GfycatRipper(new URL("https://gfycat.com/@rsss.kr")); + testRipper(ripper); + } }