diff --git a/bulkredditdownloader/site_downloaders/download_factory.py b/bulkredditdownloader/site_downloaders/download_factory.py index a1aad75..ba5c7e3 100644 --- a/bulkredditdownloader/site_downloaders/download_factory.py +++ b/bulkredditdownloader/site_downloaders/download_factory.py @@ -34,7 +34,7 @@ class DownloadFactory: return Gfycat elif re.match(url_beginning + r'gifdeliverynetwork', url): return GifDeliveryNetwork - elif re.match(url_beginning + r'imgur.*', url): + elif re.match(url_beginning + r'(m\.)?imgur.*', url): return Imgur elif re.match(url_beginning + r'redgifs.com', url): return Redgifs diff --git a/bulkredditdownloader/tests/site_downloaders/test_download_factory.py b/bulkredditdownloader/tests/site_downloaders/test_download_factory.py index 935bac3..830eeeb 100644 --- a/bulkredditdownloader/tests/site_downloaders/test_download_factory.py +++ b/bulkredditdownloader/tests/site_downloaders/test_download_factory.py @@ -40,6 +40,7 @@ from bulkredditdownloader.site_downloaders.youtube import Youtube ('https://m.youtube.com/watch?v=kr-FeojxzUM', Youtube), ('https://i.imgur.com/3SKrQfK.jpg?1', Direct), ('https://dynasty-scans.com/system/images_images/000/017/819/original/80215103_p0.png?1612232781', Direct), + ('https://m.imgur.com/a/py3RW0j', Imgur), )) def test_factory_lever_good(test_submission_url: str, expected_class: BaseDownloader, reddit_instance: praw.Reddit): result = DownloadFactory.pull_lever(test_submission_url) diff --git a/bulkredditdownloader/tests/site_downloaders/test_imgur.py b/bulkredditdownloader/tests/site_downloaders/test_imgur.py index 2b877f6..542db0b 100644 --- a/bulkredditdownloader/tests/site_downloaders/test_imgur.py +++ b/bulkredditdownloader/tests/site_downloaders/test_imgur.py @@ -12,21 +12,42 @@ from bulkredditdownloader.site_downloaders.imgur import Imgur @pytest.mark.online @pytest.mark.parametrize(('test_url', 'expected_gen_dict', 'expected_image_dict'), ( - ('https://imgur.com/a/xWZsDDP', - {'num_images': '1', 'id': 'xWZsDDP', 'hash': 'xWZsDDP'}, - [{'hash': 'ypa8YfS', 'title': '', 'ext': '.png', 'animated': False}]), - ('https://imgur.com/gallery/IjJJdlC', - {'num_images': 1, 'id': 384898055, 'hash': 'IjJJdlC'}, - [{'hash': 'CbbScDt', 'description': 'watch when he gets it', 'ext': '.gif', 'animated': True, 'has_sound': False}], - ), - ('https://imgur.com/a/dcc84Gt', - {'num_images': '4', 'id': 'dcc84Gt', 'hash': 'dcc84Gt'}, - [ - {'hash': 'ylx0Kle', 'ext': '.jpg', 'title': ''}, - {'hash': 'TdYfKbK', 'ext': '.jpg', 'title': ''}, - {'hash': 'pCxGbe8', 'ext': '.jpg', 'title': ''}, - {'hash': 'TSAkikk', 'ext': '.jpg', 'title': ''}, - ]), + ( + 'https://imgur.com/a/xWZsDDP', + {'num_images': '1', 'id': 'xWZsDDP', 'hash': 'xWZsDDP'}, + [ + {'hash': 'ypa8YfS', 'title': '', 'ext': '.png', 'animated': False} + ] + ), + ( + 'https://imgur.com/gallery/IjJJdlC', + {'num_images': 1, 'id': 384898055, 'hash': 'IjJJdlC'}, + [ + {'hash': 'CbbScDt', + 'description': 'watch when he gets it', + 'ext': '.gif', + 'animated': True, + 'has_sound': False + } + ], + ), + ( + 'https://imgur.com/a/dcc84Gt', + {'num_images': '4', 'id': 'dcc84Gt', 'hash': 'dcc84Gt'}, + [ + {'hash': 'ylx0Kle', 'ext': '.jpg', 'title': ''}, + {'hash': 'TdYfKbK', 'ext': '.jpg', 'title': ''}, + {'hash': 'pCxGbe8', 'ext': '.jpg', 'title': ''}, + {'hash': 'TSAkikk', 'ext': '.jpg', 'title': ''}, + ] + ), + ( + 'https://m.imgur.com/a/py3RW0j', + {'num_images': '1', 'id': 'py3RW0j', 'hash': 'py3RW0j', }, + [ + {'hash': 'K24eQmK', 'has_sound': False, 'ext': '.jpg'} + ], + ), )) def test_get_data_album(test_url: str, expected_gen_dict: dict, expected_image_dict: list[dict]): result = Imgur._get_data(test_url)