diff --git a/gallery_dl/extractor/directlink.py b/gallery_dl/extractor/directlink.py index 3161e373..3b6a91d1 100644 --- a/gallery_dl/extractor/directlink.py +++ b/gallery_dl/extractor/directlink.py @@ -15,19 +15,22 @@ from .. import text class DirectlinkExtractor(Extractor): """Extractor for direct links to images""" category = "directlink" - pattern = [r"https?://[^?&#]+\.(?:jpe?g|png|gif|webm|mp4|ogg)"] + filename_fmt = "{domain}/{path}" + pattern = [r"https?://([^/]+)/([^?&#]+\.(?:jpe?g|png|gif|webm|mp4|ogg))"] test = [(("https://photos.smugmug.com/The-World/Hawaii/" "i-SWz2K6n/2/X3/IMG_0311-X3.jpg"), { "url": "32ee1045881e17ef3f13a9958595afa42421ec6c", - "keyword": "5bd7871a6957e1693c43abf31d7c0a38e39a81de", + "keyword": "1abd2f2c115cdf2cf2671d2611349b4213c3ab3e", })] def __init__(self, match): Extractor.__init__(self) + self.domain, self.path = match.groups() self.url = match.string def items(self): - data = text.nameext_from_url(self.url) + data = {"domain": self.domain, "path": self.path} + text.nameext_from_url(self.url, data) yield Message.Version, 1 yield Message.Directory, data yield Message.Url, self.url, data diff --git a/gallery_dl/extractor/fallenangels.py b/gallery_dl/extractor/fallenangels.py index 8dae0675..c5ec7619 100644 --- a/gallery_dl/extractor/fallenangels.py +++ b/gallery_dl/extractor/fallenangels.py @@ -79,7 +79,7 @@ class FallenangelsMangaExtractor(MangaExtractor): "url": "8da3d4bcbadc173e5b23c141a0e646b35f41b9b0", }), ("https://truyen.fascans.com/manga/rakudai-kishi-no-eiyuutan", { - "url": "d332d08ce522c7943cd80d3fd361391190444a26", + "url": "51a731a6b82d5eb7a335fbae6b02d06aeb2ab07b", }), ] diff --git a/gallery_dl/extractor/imgur.py b/gallery_dl/extractor/imgur.py index f2599aa8..a5d4accd 100644 --- a/gallery_dl/extractor/imgur.py +++ b/gallery_dl/extractor/imgur.py @@ -52,12 +52,11 @@ class ImgurExtractor(Extractor): class ImgurImageExtractor(ImgurExtractor): """Extractor for individual images from imgur.com""" - category = "imgur" subcategory = "image" filename_fmt = "{category}_{hash}.{extension}" pattern = [(r"(?:https?://)?(?:m\.|www\.)?imgur\.com/" r"(?:gallery/)?((?!gallery)[^/?&#]{7})/?"), - (r"(?:https?://)?i\.imgur\.com/([^/?&#.]{7})\.")] + (r"(?:https?://)?i\.imgur\.com/([^/?&#.]{5,7})\.")] test = [ ("https://imgur.com/21yMxCS", { "url": "6f2dcfb86815bdd72808c313e5f715610bc7b9b2", diff --git a/test/test_extractors.py b/test/test_extractors.py index 72795510..050fcbf1 100644 --- a/test/test_extractors.py +++ b/test/test_extractors.py @@ -51,7 +51,7 @@ skip = [ # dont work on travis-ci "exhentai", "kissmanga", "mangafox", "dynastyscans", "nijie", # temporary issues - "mangapark", + "mangapark", "imgtrex", ] # enable selective testing for direct calls if __name__ == '__main__' and len(sys.argv) > 1: