From d4f7deaa6872ac35f37ccb5f17c350ab12424e9a Mon Sep 17 00:00:00 2001 From: SoulSuck24 <79275800+Soulsuck24@users.noreply.github.com> Date: Sun, 18 Sep 2022 14:30:43 -0400 Subject: [PATCH] Revert "Edge case coverage" This reverts commit 2f2b5b749c7348be09babc31e26fac6c2c243716. --- bdfr/site_downloaders/download_factory.py | 4 +++- bdfr/site_downloaders/imgur.py | 9 ++++----- bdfr/site_downloaders/redgifs.py | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/bdfr/site_downloaders/download_factory.py b/bdfr/site_downloaders/download_factory.py index 5f1d9b1..b0bf96a 100644 --- a/bdfr/site_downloaders/download_factory.py +++ b/bdfr/site_downloaders/download_factory.py @@ -25,7 +25,7 @@ class DownloadFactory: @staticmethod def pull_lever(url: str) -> Type[BaseDownloader]: sanitised_url = DownloadFactory.sanitise_url(url) - if re.match(r'imgur\.com', sanitised_url): + if re.match(r'(i\.)?imgur.*\.gif.+$', sanitised_url): return Imgur elif re.match(r'(i\.)?(redgifs|gifdeliverynetwork)', sanitised_url): return Redgifs @@ -40,6 +40,8 @@ class DownloadFactory: return Gallery elif re.match(r'gfycat\.', sanitised_url): return Gfycat + elif re.match(r'(m\.)?imgur.*', sanitised_url): + return Imgur elif re.match(r'reddit\.com/r/', sanitised_url): return SelfPost elif re.match(r'(m\.)?youtu\.?be', sanitised_url): diff --git a/bdfr/site_downloaders/imgur.py b/bdfr/site_downloaders/imgur.py index 2c0ac04..1f669d0 100644 --- a/bdfr/site_downloaders/imgur.py +++ b/bdfr/site_downloaders/imgur.py @@ -41,11 +41,10 @@ class Imgur(BaseDownloader): @staticmethod def _get_data(link: str) -> dict: - try: - imgur_id = re.match(r'.*/(.*?)(\..{0,})?$', link).group(1) - link = f'https://imgur.com/a/{imgur_id}' - except AttributeError: - raise SiteDownloaderError(f'Could not extract Imgur ID from {link}') + link = link.rstrip('?') + if re.match(r'(?i).*\.gif.+$', link): + link = link.replace('i.imgur', 'imgur') + link = re.sub('(?i)\\.gif.+$', '', link) res = Imgur.retrieve_url(link, cookies={'over18': '1', 'postpagebeta': '0'}) diff --git a/bdfr/site_downloaders/redgifs.py b/bdfr/site_downloaders/redgifs.py index 2134aa3..8d6ab21 100644 --- a/bdfr/site_downloaders/redgifs.py +++ b/bdfr/site_downloaders/redgifs.py @@ -24,7 +24,7 @@ class Redgifs(BaseDownloader): @staticmethod def _get_link(url: str) -> set[str]: try: - redgif_id = re.match(r'.*/(.*?)(\..{0,})?$', url).group(1) + redgif_id = re.match(r'.*/(.*?)(\..{3,})?$', url).group(1) except AttributeError: raise SiteDownloaderError(f'Could not extract Redgifs ID from {url}')