Imgur updates
Update Imgur logic to cover malformed links that cause a redirect leading to the html of the page being saved as an image.
This commit is contained in:
parent
d60b4e7fdd
commit
106d7596b1
|
@ -25,7 +25,7 @@ class DownloadFactory:
|
|||
@staticmethod
|
||||
def pull_lever(url: str) -> Type[BaseDownloader]:
|
||||
sanitised_url = DownloadFactory.sanitise_url(url)
|
||||
if re.match(r'(i\.)?imgur.*\.gif.+$', sanitised_url):
|
||||
if re.match(r'(i\.|m\.)?imgur', sanitised_url):
|
||||
return Imgur
|
||||
elif re.match(r'.*/.*\.\w{3,4}(\?[\w;&=]*)?$', sanitised_url) and \
|
||||
not DownloadFactory.is_web_resource(sanitised_url):
|
||||
|
@ -38,8 +38,6 @@ 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'(redgifs|gifdeliverynetwork)', sanitised_url):
|
||||
return Redgifs
|
||||
elif re.match(r'reddit\.com/r/', sanitised_url):
|
||||
|
|
|
@ -41,10 +41,12 @@ class Imgur(BaseDownloader):
|
|||
|
||||
@staticmethod
|
||||
def _get_data(link: str) -> dict:
|
||||
link = link.rstrip('?')
|
||||
if re.match(r'(?i).*\.gif.+$', link):
|
||||
link = link.replace('i.imgur', 'imgur')
|
||||
link = re.sub('(?i)\\.gif.+$', '', link)
|
||||
try:
|
||||
imgur_id = re.match(r'.*/(.*?)(\..{0,})?$', link).group(1)
|
||||
gallery = 'a/' if re.search(r'.*/(.*?)(gallery/|a/)', link) else ''
|
||||
link = f'https://imgur.com/{gallery}{imgur_id}'
|
||||
except AttributeError:
|
||||
raise SiteDownloaderError(f'Could not extract Imgur ID from {link}')
|
||||
|
||||
res = Imgur.retrieve_url(link, cookies={'over18': '1', 'postpagebeta': '0'})
|
||||
|
||||
|
|
Loading…
Reference in a new issue