diff --git a/gallery_dl/extractor/artstation.py b/gallery_dl/extractor/artstation.py index 69184601..9dab0c05 100644 --- a/gallery_dl/extractor/artstation.py +++ b/gallery_dl/extractor/artstation.py @@ -213,7 +213,7 @@ class ArtstationLikesExtractor(ArtstationExtractor): class ArtstationChallengeExtractor(ArtstationExtractor): """Extractor for submissions of artstation challenges""" subcategory = "challenge" - filename_fmt = "{submission_id}_{asset_id}_{name}.{extension}" + filename_fmt = "{submission_id}_{asset_id}_{filename}.{extension}" directory_fmt = ("{category}", "Challenges", "{challenge[id]} - {challenge[title]}") archive_fmt = "c_{challenge[id]}_{asset_id}" diff --git a/gallery_dl/extractor/bobx.py b/gallery_dl/extractor/bobx.py index 9ff4e431..67427a75 100644 --- a/gallery_dl/extractor/bobx.py +++ b/gallery_dl/extractor/bobx.py @@ -35,13 +35,13 @@ class BobxGalleryExtractor(BobxExtractor): (("http://www.bobx.com/idol/mikoto-hibi" "/photoset/wpb-2018-_11-0-2-8.html"), { "url": "93972d6a661f6627e963d62c9d15531e6b36a389", - "keyword": "03505f6d3cdab7b5579431bfe8622eeffd36f533", + "keyword": "6c620862db494ed05e69356ba30e604b167b0670", "content": "3f176b7fe752524cec21a763aa55567e41181e07", }), (("http://www.bobx.com/idol/nashiko-momotsuki" "/photoset/wpb-net-_221---2018-08---magic-of-summer-0-10-10.html"), { "url": "f5d6c0cd0881ae6f504c21a90d86e3464dc54e8e", - "keyword": "43395ac200deaaa50627da666bd02c8f1f86a59d", + "keyword": "f4819c75f494044348889ecd27771508464c0f5f", }), ) @@ -61,7 +61,7 @@ class BobxGalleryExtractor(BobxExtractor): url = text.urljoin(self.root, url.replace("-preview-", "-")) data = text.nameext_from_url(url, data) data["image_id"] = text.parse_int( - data["name"].rpartition("-")[2]) + data["filename"].rpartition("-")[2]) data["num"] += 1 yield Message.Url, url, data diff --git a/gallery_dl/extractor/common.py b/gallery_dl/extractor/common.py index 5745a4d0..cc0dd620 100644 --- a/gallery_dl/extractor/common.py +++ b/gallery_dl/extractor/common.py @@ -27,7 +27,7 @@ class Extractor(): subcategory = "" categorytransfer = False directory_fmt = ("{category}",) - filename_fmt = "{name}.{extension}" + filename_fmt = "{filename}.{extension}" archive_fmt = "" cookiedomain = "" diff --git a/gallery_dl/extractor/directlink.py b/gallery_dl/extractor/directlink.py index 5d00d8ad..fb3c065b 100644 --- a/gallery_dl/extractor/directlink.py +++ b/gallery_dl/extractor/directlink.py @@ -23,17 +23,17 @@ class DirectlinkExtractor(Extractor): test = ( (("https://en.wikipedia.org/static/images/project-logos/enwiki.png"), { "url": "18c5d00077332e98e53be9fed2ee4be66154b88d", - "keyword": "66bce3a0a6872d8497e1984eb49d54a3ed0d3d5e", + "keyword": "e81b9fe3022e971365dd859f38e4ef717a6c69ed", }), # more complex example ("https://example.org/path/file.webm?que=1&ry=2#fragment", { "url": "fd4aec8a32842343394e6078a06c3e6b647bf671", - "keyword": "ed008f35fc18dddb2f448a18d160c949bb3b054c", + "keyword": "ff75764b1ae66615b723a6357b8193fa2de84678", }), # percent-encoded characters ("https://example.org/%27%3C%23/%23%3E%27.jpg?key=%3C%26%3E", { "url": "2627e8140727fdf743f86fe18f69f99a052c9718", - "keyword": "c658b8b6213e46be15a25e492df385ece5771bdf", + "keyword": "4d19dc12e41ffcb4cbec2013e335cf482377c35e", }), ) diff --git a/gallery_dl/extractor/dynastyscans.py b/gallery_dl/extractor/dynastyscans.py index 2dad0cca..30cf74c2 100644 --- a/gallery_dl/extractor/dynastyscans.py +++ b/gallery_dl/extractor/dynastyscans.py @@ -22,12 +22,12 @@ class DynastyscansChapterExtractor(ChapterExtractor): (("http://dynasty-scans.com/chapters/" "hitoribocchi_no_oo_seikatsu_ch33"), { "url": "dce64e8c504118f1ab4135c00245ea12413896cb", - "keyword": "ec5c56bbd5c97aa521d00f2598bba4663fb8ab9f", + "keyword": "1564965671ac69bb7fbc340538397f6bd0aa269b", }), (("http://dynasty-scans.com/chapters/" "new_game_the_spinoff_special_13"), { "url": "dbe5bbb74da2edcfb1832895a484e2a40bc8b538", - "keyword": "1208a102d9a1bb0b0c740a67996d9b26a9357b64", + "keyword": "22b35029bc65d6d95db2e2c147b0a37f2d290f29", }), ) root = "https://dynasty-scans.com" diff --git a/gallery_dl/extractor/exhentai.py b/gallery_dl/extractor/exhentai.py index dea78e3f..9ea1ebe9 100644 --- a/gallery_dl/extractor/exhentai.py +++ b/gallery_dl/extractor/exhentai.py @@ -24,7 +24,8 @@ class ExhentaiExtractor(Extractor): """Base class for exhentai extractors""" category = "exhentai" directory_fmt = ("{category}", "{gallery_id}") - filename_fmt = "{gallery_id}_{num:>04}_{image_token}_{name}.{extension}" + filename_fmt = ( + "{gallery_id}_{num:>04}_{image_token}_{filename}.{extension}") archive_fmt = "{gallery_id}_{num}" cookiedomain = ".exhentai.org" cookienames = ("ipb_member_id", "ipb_pass_hash") @@ -109,7 +110,7 @@ class ExhentaiGalleryExtractor(ExhentaiExtractor): r"|/s/([\da-f]{10})/(\d+)-(\d+))") test = ( ("https://exhentai.org/g/960460/4f0e369d82/", { - "keyword": "ba0785e49e3877cfa3f91c1ad9a5ac7816339bf5", + "keyword": "993bfaf68b4823084fbd0d3339564666463b1432", "content": "493d759de534355c9f55f8e365565b62411de146", }), ("https://exhentai.org/g/960461/4f0e369d82/", { diff --git a/gallery_dl/extractor/fallenangels.py b/gallery_dl/extractor/fallenangels.py index 97ad828e..896b7754 100644 --- a/gallery_dl/extractor/fallenangels.py +++ b/gallery_dl/extractor/fallenangels.py @@ -21,14 +21,14 @@ class FallenangelsChapterExtractor(ChapterExtractor): test = ( ("https://manga.fascans.com/manga/chronos-ruler/20/1", { "url": "4604a7914566cc2da0ff789aa178e2d1c8c241e3", - "keyword": "4e1722cf0ed8ee5fc5c64147ac3f39342e767cd8", + "keyword": "2dfcc50020e32cd207be88e2a8fac0933e36bdfb", }), ("http://truyen.fascans.com/manga/hungry-marie/8", { "url": "1f923d9cb337d5e7bbf4323719881794a951c6ae", - "keyword": "c7beeb7d8a65d5d8ab451f076f584bd4d52b7210", + "keyword": "2bdb7334c0e3eceb9946ffd3132df679b4a94f6a", }), ("http://manga.fascans.com/manga/rakudai-kishi-no-eiyuutan/19.5", { - "keyword": "bf7dd1c462a80ffe50b92fec00b7acda2f8b800e", + "keyword": "9fcca4c1a90d11f00764f62477ebe10bd408021c", }), ) diff --git a/gallery_dl/extractor/flickr.py b/gallery_dl/extractor/flickr.py index 48c3f0a1..e92c0873 100644 --- a/gallery_dl/extractor/flickr.py +++ b/gallery_dl/extractor/flickr.py @@ -52,7 +52,7 @@ class FlickrImageExtractor(FlickrExtractor): test = ( ("https://www.flickr.com/photos/departingyyz/16089302239", { "url": "7f0887f5953f61c8b79a695cb102ea309c0346b0", - "keyword": "5ecdaf0192802451b7daca9b81f393f207ff7ee9", + "keyword": "9ab391f989e50a9e3679303f1e2111d84dce3d2e", "content": "6aaad7512d335ca93286fe2046e7fe3bb93d808e", }), ("http://c2.staticflickr.com/2/1475/24531000464_9a7503ae68_b.jpg", { @@ -115,7 +115,7 @@ class FlickrAlbumExtractor(FlickrExtractor): test = ( (("https://www.flickr.com/photos/shona_s/albums/72157633471741607"), { "url": "baf4a3d1b15afcecf9638000a12c0eb3d5df9024", - "keyword": "b579f19134ab8217f05979e52adf7712898492c7", + "keyword": "67ada37649e1219a414838027c3ee187119dcb33", }), ("https://www.flickr.com/photos/shona_s/albums", { "url": "657d541470482e0d69deec33ab97a6d7d4af6fe4", @@ -165,7 +165,7 @@ class FlickrGalleryExtractor(FlickrExtractor): test = (("https://www.flickr.com/photos/flickr/" "galleries/72157681572514792/"), { "url": "1d012592bc7ce3a24b2b025b1176a31e947122f6", - "keyword": "30cdec50e125f1cdf2425eab6052590535323c2d", + "keyword": "6abe4920dca5b79127fee16d90564665d379bb29", }) def __init__(self, match): @@ -210,7 +210,7 @@ class FlickrUserExtractor(FlickrExtractor): pattern = r"(?:https?://)?(?:www\.)?flickr\.com/photos/([^/]+)/?$" test = ("https://www.flickr.com/photos/shona_s/", { "url": "d125b536cd8c4229363276b6c84579c394eec3a2", - "keyword": "2cdeae22cd9c3ff19ce905215f3782a7494d8264", + "keyword": "3ef7783add7a34db1cf214da7d6502d3f24e897d", }) def photos(self): @@ -225,7 +225,7 @@ class FlickrFavoriteExtractor(FlickrExtractor): pattern = r"(?:https?://)?(?:www\.)?flickr\.com/photos/([^/]+)/favorites" test = ("https://www.flickr.com/photos/shona_s/favorites", { "url": "5129b3f5bfa83cc25bdae3ce476036de1488dad2", - "keyword": "0e1c9521b6051411b585c9b41a4dc0bcde20e616", + "keyword": "ed56cda8c1067a44eb45f1df5f079a9a3a4470c6", }) def photos(self): diff --git a/gallery_dl/extractor/foolslide.py b/gallery_dl/extractor/foolslide.py index 0cbffb6b..0ef8b3bb 100644 --- a/gallery_dl/extractor/foolslide.py +++ b/gallery_dl/extractor/foolslide.py @@ -168,7 +168,7 @@ EXTRACTORS = { "test-chapter": (("https://kobato.hologfx.com/reader/read/" "hitoribocchi_no_oo_seikatsu/en/3/34"), { - "keyword": "998d1d523da028284b8dd4b7b54ceae4af6cb65a", + "keyword": "6e719ac86f0c6dab89390dd7e507e678459e0dbc", }), "test-manga": (("https://kobato.hologfx.com/reader/series/" @@ -183,10 +183,10 @@ EXTRACTORS = { "decode": "base64", "test-chapter": ( ("https://jaiminisbox.com/reader/read/uratarou/en/0/1/", { - "keyword": "d8919bc8f0351b44e938862214e654401962b5a5", + "keyword": "6009af77cc9c05528ab1fdda47b1ad9d4811c673", }), ("https://jaiminisbox.com/reader/read/dr-stone/en/0/16/", { - "keyword": "9b658599651f1ae87cab3e0e29dd21e8337a362c", + "keyword": "8607375c24b1d0db7f52d059ef5baff793aa458e", }), ), "test-manga": @@ -200,7 +200,7 @@ EXTRACTORS = { "test-chapter": ("https://reader.kireicake.com/read/wonderland/en/1/1/", { "url": "b2d36bc0bc67e4c461c3a4d6444a2fd339f5d07e", - "keyword": "47e0cf69f95ab3b820bda05014aec38d3b824018", + "keyword": "9f80947920a325e33aea7f5cd69ea669171903b6", }), "test-manga": ("https://reader.kireicake.com/series/wonderland/", { @@ -215,7 +215,7 @@ EXTRACTORS = { (("https://read.powermanga.org" "/read/one_piece_digital_colour_comics/en/0/75/"), { "url": "854c5817f8f767e1bccd05fa9d58ffb5a4b09384", - "keyword": "9985bcb78491dff9c725958b06bba606be51b6d3", + "keyword": "a60c42f2634b7387899299d411ff494ed0ad6dbe", }), "test-manga": (("https://read.powermanga.org" @@ -239,7 +239,7 @@ EXTRACTORS = { "test-chapter": ("https://reader.seaotterscans.com/read/100_days/en/0/5/", { "url": "63d46b8883cc652dfe8bd5be4492160dd31f06a8", - "keyword": "5349c2fbaa88070e6af600de17a6c4e212243e8e", + "keyword": "401d55b900d69a3732c7221755543e17c4771dd3", }), "test-manga": ("https://reader.seaotterscans.com/series/marry_me/", { @@ -255,12 +255,12 @@ EXTRACTORS = { (("http://sensescans.com/reader/read/" "magi__labyrinth_of_magic/en/37/369/"), { "url": "a399ef037cdfbc25b09d435cc2ea1e3e454a6812", - "keyword": "43ba75615d3e77d507808b0f3a8fd7fc72232a60", + "keyword": "07acd84fb18a9f1fd6dff5befe711bcca0ff9988", }), (("http://reader.sensescans.com/read/" "magi__labyrinth_of_magic/en/37/369/"), { "url": "a399ef037cdfbc25b09d435cc2ea1e3e454a6812", - "keyword": "43ba75615d3e77d507808b0f3a8fd7fc72232a60", + "keyword": "07acd84fb18a9f1fd6dff5befe711bcca0ff9988", }), ), "test-manga": @@ -276,12 +276,12 @@ EXTRACTORS = { (("http://www.slide.world-three.org" "/read/black_bullet/en/2/7/page/1"), { "url": "be2f04f6e2d311b35188094cfd3e768583271584", - "keyword": "28edfeccc92f7ea29546d5616e689dcfcbac59d9", + "keyword": "967d536a65de4d52478d5b666a1760b181eddb6e", }), (("http://www.slide.world-three.org" "/read/idolmster_cg_shuffle/en/0/4/2/"), { "url": "6028ea5ca282744f925dfad92eeb98509f9cc78c", - "keyword": "d478e9f20847deb1844dba318acaa8b91c19468a", + "keyword": "f3cfe2ad3388991f1d045c85d0fa94795a7694dc", }), ), "test-manga": diff --git a/gallery_dl/extractor/hbrowse.py b/gallery_dl/extractor/hbrowse.py index 34b95098..01793dc3 100644 --- a/gallery_dl/extractor/hbrowse.py +++ b/gallery_dl/extractor/hbrowse.py @@ -51,7 +51,7 @@ class HbrowseChapterExtractor(HbrowseBase, ChapterExtractor): pattern = r"(?:https?://)?(?:www\.)?hbrowse\.com(/(\d+)/c(\d+))" test = ("https://www.hbrowse.com/10363/c00000", { "url": "6feefbc9f4b98e20d8425ddffa9dd111791dc3e6", - "keyword": "95ec73a58aeac57f4dd20f0fa0c2812b045a30e8", + "keyword": "274996f6c809e5250b6ff3abbc5147e29f89d9a5", "content": "44578ebbe176c2c27434966aef22945787e2781e", }) diff --git a/gallery_dl/extractor/hentai2read.py b/gallery_dl/extractor/hentai2read.py index 20bda06e..354acbfd 100644 --- a/gallery_dl/extractor/hentai2read.py +++ b/gallery_dl/extractor/hentai2read.py @@ -26,7 +26,7 @@ class Hentai2readChapterExtractor(Hentai2readBase, ChapterExtractor): pattern = r"(?:https?://)?(?:www\.)?hentai2read\.com(/[^/?&#]+/(\d+))" test = ("https://hentai2read.com/amazon_elixir/1/", { "url": "964b942cf492b3a129d2fe2608abfc475bc99e71", - "keyword": "9845105898d28c6a540cffdea60a1a20fab52431", + "keyword": "ff84b8f751f0e4ee37717efc4332ff1db71951d9", }) def __init__(self, match): diff --git a/gallery_dl/extractor/hentaicafe.py b/gallery_dl/extractor/hentaicafe.py index e290f609..e56a2434 100644 --- a/gallery_dl/extractor/hentaicafe.py +++ b/gallery_dl/extractor/hentaicafe.py @@ -21,7 +21,7 @@ class HentaicafeChapterExtractor(foolslide.FoolslideChapterExtractor): r"(/manga/read/[^/?&#]+/[a-z-]+/\d+/\d+(?:/\d+)?)") test = ("https://hentai.cafe/manga/read/saitom-box/en/0/1/", { "url": "8c6a8c56875ba3ed7ab0a74a64f9960077767fc2", - "keyword": "1b24a3e8625b89d160d01ce3eb5e5eb12fbbf648", + "keyword": "3688ddd3f3077c93eaa8021477ef66d18dc6c159", }) root = "https://hentai.cafe" diff --git a/gallery_dl/extractor/hentaifoundry.py b/gallery_dl/extractor/hentaifoundry.py index 40cd0e39..992c12f2 100644 --- a/gallery_dl/extractor/hentaifoundry.py +++ b/gallery_dl/extractor/hentaifoundry.py @@ -126,7 +126,7 @@ class HentaifoundryUserExtractor(HentaifoundryExtractor): test = ( ("https://www.hentai-foundry.com/pictures/user/Tenpura", { "url": "ebbc981a85073745e3ca64a0f2ab31fab967fc28", - "keyword": "d56e75566dc7dfe71d2ebd08c056a47f8832372d", + "keyword": "63ad576f87f82fa166ca4676761762f7f8496cf5", }), ("https://www.hentai-foundry.com/pictures/user/Tenpura/page/3"), ("https://www.hentai-foundry.com/user/Tenpura/profile"), @@ -152,7 +152,7 @@ class HentaifoundryScrapsExtractor(HentaifoundryExtractor): test = ( ("https://www.hentai-foundry.com/pictures/user/Evulchibi/scraps", { "url": "00a11e30b73ff2b00a1fba0014f08d49da0a68ec", - "keyword": "8c9a2ad4bf20247bcebb7aef3cfe7016f35da4a7", + "keyword": "410c6c900cfd23a8dd1e53dfcc97a79ea68c3359", }), ("https://www.hentai-foundry.com" "/pictures/user/Evulchibi/scraps/page/3"), @@ -180,7 +180,7 @@ class HentaifoundryFavoriteExtractor(HentaifoundryExtractor): test = ( ("https://www.hentai-foundry.com/user/Tenpura/faves/pictures", { "url": "56f9ae2e89fe855e9fe1da9b81e5ec6212b0320b", - "keyword": "0ab79552ae2fbfcf501ebbebcf19c2dfc9b5eb4e", + "keyword": "2b9478725e66d46ea043fa87476bbd28546958e7", }), ("https://www.hentai-foundry.com" "/user/Tenpura/faves/pictures/page/3"), @@ -235,7 +235,7 @@ class HentaifoundryImageExtractor(HentaifoundryExtractor): (("https://www.hentai-foundry.com" "/pictures/user/Tenpura/407501/shimakaze"), { "url": "fbf2fd74906738094e2575d2728e8dc3de18a8a3", - "keyword": "aa64a4cfcd9c254ee143d9a3522195d11f8c1fb8", + "keyword": "cbb9381e6c2acce58db4adf4efc0ad7d138bddc4", "content": "91bf01497c39254b6dfb234a18e8f01629c77fd1", }), ("https://www.hentai-foundry.com/pictures/user/Tenpura/340853/", { diff --git a/gallery_dl/extractor/hentaifox.py b/gallery_dl/extractor/hentaifox.py index 330118e4..eff8f980 100644 --- a/gallery_dl/extractor/hentaifox.py +++ b/gallery_dl/extractor/hentaifox.py @@ -23,7 +23,7 @@ class HentaifoxGalleryExtractor(ChapterExtractor): test = ("https://hentaifox.com/gallery/56622/", { "pattern": r"https://i\d*\.hentaifox\.com/\d+/\d+/\d+\.jpg", "count": 24, - "keyword": "80fc0fb5db9626fffb078dd2e4f9aff4a9348686", + "keyword": "d0df47e073e32a7752236ab151949c3820f9d81e", }) root = "https://hentaifox.com" diff --git a/gallery_dl/extractor/hentaihere.py b/gallery_dl/extractor/hentaihere.py index a6eeb011..8083a9b0 100644 --- a/gallery_dl/extractor/hentaihere.py +++ b/gallery_dl/extractor/hentaihere.py @@ -26,7 +26,7 @@ class HentaihereChapterExtractor(HentaihereBase, ChapterExtractor): pattern = r"(?:https?://)?(?:www\.)?hentaihere\.com/m/S(\d+)/(\d+)" test = ("https://hentaihere.com/m/S13812/1/1/", { "url": "964b942cf492b3a129d2fe2608abfc475bc99e71", - "keyword": "e9382a9be337abce3db2b1132e85751379dc05c5", + "keyword": "cbcee0c0eb178c4b87f06a834085784f8dddad24", }) def __init__(self, match): diff --git a/gallery_dl/extractor/hitomi.py b/gallery_dl/extractor/hitomi.py index a581daa0..45e982be 100644 --- a/gallery_dl/extractor/hitomi.py +++ b/gallery_dl/extractor/hitomi.py @@ -18,13 +18,13 @@ class HitomiGalleryExtractor(ChapterExtractor): category = "hitomi" subcategory = "gallery" directory_fmt = ("{category}", "{gallery_id} {title}") - filename_fmt = "{category}_{gallery_id}_{page:>03}_{name}.{extension}" + filename_fmt = "{category}_{gallery_id}_{page:>03}_{filename}.{extension}" archive_fmt = "{gallery_id}_{page}" pattern = r"(?:https?://)?hitomi\.la/(?:galleries|reader)/(\d+)" test = ( ("https://hitomi.la/galleries/867789.html", { "url": "cb759868d090fe0e2655c3e29ebf146054322b6d", - "keyword": "85e453d01ee7f137669e75a764ccdc65ca092ad2", + "keyword": "52951edb50163180eb669a78aef0bab0522d32b7", }), ("https://hitomi.la/galleries/1036181.html", { # "aa" subdomain for gallery-id ending in 1 (#142) diff --git a/gallery_dl/extractor/imagefap.py b/gallery_dl/extractor/imagefap.py index 4f0253b7..296d4e57 100644 --- a/gallery_dl/extractor/imagefap.py +++ b/gallery_dl/extractor/imagefap.py @@ -17,7 +17,7 @@ class ImagefapExtractor(Extractor): """Base class for imagefap extractors""" category = "imagefap" directory_fmt = ("{category}", "{gallery_id} {title}") - filename_fmt = "{category}_{gallery_id}_{name}.{extension}" + filename_fmt = "{category}_{gallery_id}_{filename}.{extension}" archive_fmt = "{gallery_id}_{image_id}" root = "https://www.imagefap.com" @@ -30,12 +30,12 @@ class ImagefapGalleryExtractor(ImagefapExtractor): test = ( ("https://www.imagefap.com/pictures/7102714", { "url": "268995eac5d01ddecd0fe58cfa9828390dc85a84", - "keyword": "3b90205f434bd1e0461bdbd5d2d9c34056b50fe6", + "keyword": "b5bd65ab2ff574ed1639db9a43c7b1b8583c85ef", "content": "694a0a57385980a6f90fbc296cadcd6c11ba2dab", }), ("https://www.imagefap.com/gallery/5486966", { "url": "14906b4f0b8053d1d69bc730a325acb793cbc898", - "keyword": "66ccb98b69cb52f89540224260641002f41f6ece", + "keyword": "ab90972f3527a2011478fabc621a2c99a541f752", }), ("https://www.imagefap.com/gallery.php?gid=7102714"), ) @@ -97,7 +97,7 @@ class ImagefapImageExtractor(ImagefapExtractor): pattern = r"(?:https?://)?(?:www\.)?imagefap\.com/photo/(\d+)" test = ("https://www.imagefap.com/photo/1369341772/", { "url": "b31ee405b61ff0450020a1bf11c0581ca9adb471", - "keyword": "b49940c04ed30bfc1c28ec39eb08b3be5753ce8a", + "keyword": "eadaa8f8012298384996efd21cf1f9e9e0dddb9b", }) def __init__(self, match): diff --git a/gallery_dl/extractor/imagehosts.py b/gallery_dl/extractor/imagehosts.py index 01bdc9ee..c49213ef 100644 --- a/gallery_dl/extractor/imagehosts.py +++ b/gallery_dl/extractor/imagehosts.py @@ -76,12 +76,12 @@ class ImxtoImageExtractor(ImagehostImageExtractor): test = ( ("https://imx.to/i/1qdeva", { # new-style URL "url": "ab2173088a6cdef631d7a47dec4a5da1c6a00130", - "keyword": "7bb48a2327561ae04ea7a6d4e18e715379e2f497", + "keyword": "1153a986c939d7aed599905588f5c940048bc517", "content": "0c8768055e4e20e7c7259608b67799171b691140", }), ("https://imx.to/img-57a2050547b97.html", { # old-style URL "url": "a83fe6ef1909a318c4d49fcf2caf62f36c3f9204", - "keyword": "451ad3d4745489c2e663acb1281d89c36ada940a", + "keyword": "fd2240aee77a21b8252d5b829a1f7e542f927f09", "content": "54592f2635674c25677c6872db3709d343cdf92f", }), ("https://img.yt/img-57a2050547b97.html", { # img.yt domain @@ -119,7 +119,7 @@ class AcidimgImageExtractor(ImagehostImageExtractor): pattern = r"(?:https?://)?((?:www\.)?acidimg\.cc/img-([a-z0-9]+)\.html)" test = ("https://acidimg.cc/img-5acb6b9de4640.html", { "url": "f132a630006e8d84f52d59555191ed82b3b64c04", - "keyword": "183098c59d9244650f666b6cb4df96d76d2aeae8", + "keyword": "a8bb9ab8b2f6844071945d31f8c6e04724051f37", "content": "0c8768055e4e20e7c7259608b67799171b691140", }) https = True @@ -156,7 +156,7 @@ class ImagetwistImageExtractor(ImagehostImageExtractor): pattern = r"(?:https?://)?((?:www\.)?imagetwist\.com/([a-z0-9]{12}))" test = ("https://imagetwist.com/4e46hv31tu0q/test.jpg", { "url": "c999dc1a5dec0525ac9eb8c092f173dfe6dba0b0", - "keyword": "30dd34dcb06b5b51c6cfff199c610b24edb7b9bc", + "keyword": "a9f2e01757ec96d4ee4752cbd8446ede80f7935e", "content": "96b1fd099b06faad5879fce23a7e4eb8290d8810", }) https = True @@ -196,7 +196,7 @@ class PixhostImageExtractor(ImagehostImageExtractor): r"/show/\d+/(\d+)_[^/?&#]+)") test = ("https://pixhost.to/show/224/96246707_test-.png", { "url": "8f3d41fdd2dbec4c844e5ee45bf49961fbd79c67", - "keyword": "d7b19630acf8da39036581d3d5597f97da883626", + "keyword": "ecefe2d5814286f9d1dff3d88d9bdc78dd456c5d", "content": "0c8768055e4e20e7c7259608b67799171b691140", }) https = True @@ -216,7 +216,7 @@ class PostimgImageExtractor(ImagehostImageExtractor): r"/(?:image/)?([^/?&#]+)/?)") test = ("https://postimg.cc/Wtn2b3hC", { "url": "0794cfda9b8951a8ac3aa692472484200254ab86", - "keyword": "dd8822e7d359c33dba85280fe31bea7d098cd1d1", + "keyword": "2d05808d04e4e83e33200db83521af06e3147a84", "content": "cfaa8def53ed1a575e0c665c9d6d8cf2aac7a0ee", }) https = True @@ -235,7 +235,7 @@ class TurboimagehostImageExtractor(ImagehostImageExtractor): r"/p/(\d+)/[^/?&#]+\.html)") test = ("https://www.turboimagehost.com/p/39078423/test--.png.html", { "url": "b94de43612318771ced924cb5085976f13b3b90e", - "keyword": "c1391465dc7b590b0eb8ea2a8cd235733c6fce2b", + "keyword": "704757ca8825f51cec516ec44c1e627c1f2058ca", "content": "0c8768055e4e20e7c7259608b67799171b691140", }) https = True diff --git a/gallery_dl/extractor/imgbox.py b/gallery_dl/extractor/imgbox.py index 55947a9e..516ef18b 100644 --- a/gallery_dl/extractor/imgbox.py +++ b/gallery_dl/extractor/imgbox.py @@ -62,18 +62,18 @@ class ImgboxGalleryExtractor(AsynchronousMixin, ImgboxExtractor): """Extractor for image galleries from imgbox.com""" subcategory = "gallery" directory_fmt = ("{category}", "{title} - {gallery_key}") - filename_fmt = "{num:>03}-{name}.{extension}" + filename_fmt = "{num:>03}-{filename}.{extension}" archive_fmt = "{gallery_key}_{image_key}" pattern = r"(?:https?://)?(?:www\.)?imgbox\.com/g/([A-Za-z0-9]{10})" test = ( ("https://imgbox.com/g/JaX5V5HX7g", { "url": "678f0bca1251d810372326ea4f16582cafa800e4", - "keyword": "92499344257cf8c72695a8dab4ccc15ca7655c1e", + "keyword": "4b1e62820ac2c6205b7ad0b6322cc8e00dbe1b0c", "content": "d20307dc8511ac24d688859c55abf2e2cc2dd3cc", }), ("https://imgbox.com/g/cUGEkRbdZZ", { "url": "d839d47cbbbeb121f83c520072512f7e51f52107", - "keyword": "b352ca26009ba10d80b5e46067a78b4a51c6c2c9", + "keyword": "fb0427b87983197849fb2887905e758f3e50cb6e", }), ("https://imgbox.com/g/JaX5V5HX7h", { "exception": exception.NotFoundError, @@ -111,7 +111,7 @@ class ImgboxImageExtractor(ImgboxExtractor): test = ( ("https://imgbox.com/qHhw7lpG", { "url": "d931f675a9b848fa7cb9077d6c2b14eb07bdb80f", - "keyword": "a7a65a05a49d9a0eae95d637019af55faad09c5e", + "keyword": "dfc72310026b45f3feb4f9cada20c79b2575e1af", "content": "0c8768055e4e20e7c7259608b67799171b691140", }), ("https://imgbox.com/qHhw7lpH", { diff --git a/gallery_dl/extractor/imgth.py b/gallery_dl/extractor/imgth.py index 58a0a630..a97f2e01 100644 --- a/gallery_dl/extractor/imgth.py +++ b/gallery_dl/extractor/imgth.py @@ -22,7 +22,7 @@ class ImgthGalleryExtractor(Extractor): pattern = r"(?:https?://)?imgth\.com/gallery/(\d+)" test = ("http://imgth.com/gallery/37/wallpaper-anime", { "url": "4ae1d281ca2b48952cf5cca57e9914402ad72748", - "keyword": "e62d14f20ded393d28c2789fcc34ea2c30bc6a7c", + "keyword": "6f8c00d6849ea89d1a028764675ec1fe9dbd87e2", }) def __init__(self, match): diff --git a/gallery_dl/extractor/khinsider.py b/gallery_dl/extractor/khinsider.py index dd1d58d7..c9e6959f 100644 --- a/gallery_dl/extractor/khinsider.py +++ b/gallery_dl/extractor/khinsider.py @@ -17,7 +17,7 @@ class KhinsiderSoundtrackExtractor(AsynchronousMixin, Extractor): category = "khinsider" subcategory = "soundtrack" directory_fmt = ("{category}", "{album}") - archive_fmt = "{album}_{name}.{extension}" + archive_fmt = "{album}_{filename}.{extension}" pattern = (r"(?:https?://)?downloads\.khinsider\.com" r"/game-soundtracks/album/([^/?&#]+)") test = (("https://downloads.khinsider.com" @@ -25,7 +25,7 @@ class KhinsiderSoundtrackExtractor(AsynchronousMixin, Extractor): "pattern": r"https?://\d+\.\d+\.\d+\.\d+/ost/horizon-riders-wii/[^/]+" r"/Horizon%20Riders%20Wii%20-%20Full%20Soundtrack\.mp3", "count": 1, - "keyword": "d91cf3edee6713b536eaf3995743f0be7dc72f68", + "keyword": "b4f460c78dd23e1f1121f4ac784dd67ded7c2679", }) root = "https://downloads.khinsider.com" diff --git a/gallery_dl/extractor/kissmanga.py b/gallery_dl/extractor/kissmanga.py index 887d7104..20b9d96a 100644 --- a/gallery_dl/extractor/kissmanga.py +++ b/gallery_dl/extractor/kissmanga.py @@ -74,19 +74,19 @@ class KissmangaChapterExtractor(KissmangaBase, ChapterExtractor): test = ( ("https://kissmanga.com/Manga/Dropout/Ch-000---Oneshot-?id=145847", { "url": "46e63fd63e9e16f19bc1e6c7a45dc060815642fd", - "keyword": "4a3a9341d453541de0dbfa24cd6b2e3ed39c0182", + "keyword": "1cd0b5214ac7ae4d53e2fd8fec40ceec84cd09bf", }), ("https://kissmanga.com/Manga/Urban-Tales/a?id=256717", { "url": "c26be8bf9c2abacee2076979d021634092cf38f1", - "keyword": "ffc11b630da44fe67709ed0473756cf51b90a05c", + "keyword": "e1d16780df8e04076ed2b5f0637c5b710ec2f2ea", }), ("https://kissmanga.com/Manga/Monster/Monster-79?id=7608", { "count": 23, - "keyword": "d47c94f4c57f4ab690a34b60fefac7b294468856", + "keyword": "f433a7a8fae840e17dace316a243fa27faab86de", }), ("https://kissmanga.com/Manga/Houseki-no-Kuni/Oneshot?id=404189", { "count": 49, - "keyword": "7835a19c9fc54ec4f2b345e8be3e865cfa57da5c", + "keyword": "d44d1b21d08e4dbf888b0c450a3f1bc919588b4f", }), ("https://kissmanga.com/mAnGa/mOnStEr/Monster-79?id=7608"), ) diff --git a/gallery_dl/extractor/komikcast.py b/gallery_dl/extractor/komikcast.py index 20df7814..8ae05890 100644 --- a/gallery_dl/extractor/komikcast.py +++ b/gallery_dl/extractor/komikcast.py @@ -52,12 +52,12 @@ class KomikcastChapterExtractor(KomikcastBase, ChapterExtractor): (("https://komikcast.com/chapter/" "apotheosis-chapter-02-2-bahasa-indonesia/"), { "url": "2a108bf8a96753266610afef625d248f858e13f3", - "keyword": "9964a7ce7c8a518aebdccdea0e05858439c7ad92", + "keyword": "5c677ec86957f3bdad2bd5102a69a872a11c0f92", }), (("https://komikcast.com/chapter/" "tonari-no-kashiwagi-san-chapter-18b/"), { "url": "aff90dd21dbb945a726778b10bdef522af7c42fe", - "keyword": "94bb85aec6654ab5af0c10419ca388fcd9c73b47", + "keyword": "2469acd77c635fedcc131b5d40e7acc36e4674ad", }), ) diff --git a/gallery_dl/extractor/mangadex.py b/gallery_dl/extractor/mangadex.py index e023df6c..e00fdfde 100644 --- a/gallery_dl/extractor/mangadex.py +++ b/gallery_dl/extractor/mangadex.py @@ -50,13 +50,13 @@ class MangadexChapterExtractor(MangadexExtractor): pattern = r"(?:https?://)?(?:www\.)?mangadex\.(?:org|com)/chapter/(\d+)" test = ( ("https://mangadex.org/chapter/122094", { - "keyword": "7bd7f82ab9d3f06976c4b68afe78d0040851ac3c", + "keyword": "1c834dca33025f521e1874aee1f71c51e28ebf99", "content": "7ab3bef5caccb62b881f8e6e70359d3c7be8137f", }), # oneshot ("https://mangadex.org/chapter/138086", { "count": 64, - "keyword": "435e157dc5529d152458ba751ffe5bfbaf4850fb", + "keyword": "178777bd0352fb19eb934cbee5630d16e3fb60ab", }), ) diff --git a/gallery_dl/extractor/mangafox.py b/gallery_dl/extractor/mangafox.py index a57eb954..1b8a4a62 100644 --- a/gallery_dl/extractor/mangafox.py +++ b/gallery_dl/extractor/mangafox.py @@ -19,7 +19,7 @@ class MangafoxChapterExtractor(ChapterExtractor): r"(/manga/[^/]+/((?:v(\d+)/)?c(\d+)([^/?&#]*)))") test = ( ("http://fanfox.net/manga/kidou_keisatsu_patlabor/v05/c006.2/1.html", { - "keyword": "36b570e9ef11b4748407324fe08bebbe4856e6fd", + "keyword": "5661dab258d42d09d98f194f7172fb9851a49766", "content": "5c50c252dcf12ffecf68801f4db8a2167265f66c", }), ("http://mangafox.me/manga/kidou_keisatsu_patlabor/v05/c006.2/"), diff --git a/gallery_dl/extractor/mangahere.py b/gallery_dl/extractor/mangahere.py index da85fd8b..e15acbe4 100644 --- a/gallery_dl/extractor/mangahere.py +++ b/gallery_dl/extractor/mangahere.py @@ -27,7 +27,7 @@ class MangahereChapterExtractor(MangahereBase, ChapterExtractor): r"([^/]+(?:/v0*(\d+))?/c([^/?&#]+))") test = ( ("https://www.mangahere.cc/manga/dongguo_xiaojie/c004.2/", { - "keyword": "6407556817bd1fd2bdc8dee3fd2a718f5724ddc0", + "keyword": "7c98d7b50a47e6757b089aa875a53aa970cac66f", "content": "708d475f06893b88549cbd30df1e3f9428f2c884", }), ("http://www.mangahere.co/manga/dongguo_xiaojie/c003.2/"), diff --git a/gallery_dl/extractor/mangapanda.py b/gallery_dl/extractor/mangapanda.py index 9140af84..18ef0054 100644 --- a/gallery_dl/extractor/mangapanda.py +++ b/gallery_dl/extractor/mangapanda.py @@ -22,7 +22,7 @@ class MangapandaChapterExtractor(MangapandaBase, MangareaderChapterExtractor): pattern = r"(?:https?://)?(?:www\.)?mangapanda\.com((/[^/?&#]+)/(\d+))" test = ("https://www.mangapanda.com/red-storm/2", { "url": "1f633f776e950531ba9b1e81965316458e785261", - "keyword": "32b5e84017c2bf5f122b339ecf40899e41f18cc9", + "keyword": "b24df4b9cc36383fb6a44e06d32a3884a4dcb5fb", }) diff --git a/gallery_dl/extractor/mangapark.py b/gallery_dl/extractor/mangapark.py index f50065bc..ee112313 100644 --- a/gallery_dl/extractor/mangapark.py +++ b/gallery_dl/extractor/mangapark.py @@ -45,16 +45,16 @@ class MangaparkChapterExtractor(MangaparkBase, ChapterExtractor): test = ( ("https://mangapark.me/manga/gosu/i811615/c55/1", { "count": 50, - "keyword": "a18e07119b3317d7e795ef37ee69ce0bbb806350", + "keyword": "373d678048d29492f9763743ccaa9b6d840f17cf", }), (("https://mangapark.me/manga" "/ad-astra-per-aspera-hata-kenjirou/i662054/c001.2/1"), { "count": 40, - "keyword": "3f286631279e2017ce87c1b8db05d7b3f15e2971", + "keyword": "8e9cce4ed0e25d12a45e02f840d6f32ef838e257", }), ("https://mangapark.me/manga/gekkan-shoujo-nozaki-kun/i655476/c70/1", { "count": 15, - "keyword": "3abb13e6d1ea7f8808b0ec415270b3afac97f98b", + "keyword": "19f730617074d65f91c0781f429de324890925bf", }), ("https://mangapark.net/manga/gosu/i811615/c55/1"), ("https://mangapark.com/manga/gosu/i811615/c55/1"), diff --git a/gallery_dl/extractor/mangareader.py b/gallery_dl/extractor/mangareader.py index b355b634..d24d4525 100644 --- a/gallery_dl/extractor/mangareader.py +++ b/gallery_dl/extractor/mangareader.py @@ -39,7 +39,7 @@ class MangareaderChapterExtractor(MangareaderBase, ChapterExtractor): test = (("https://www.mangareader.net" "/karate-shoukoushi-kohinata-minoru/11"), { "url": "061cc92a07edf17bb991ce0821fa4c77a147a860", - "keyword": "2893cfcd1916859fb498f3345f1929f868fe667f", + "keyword": "133e3e2f7c0529a35bbb16149e34c40546f8dfd6", }) def __init__(self, match): diff --git a/gallery_dl/extractor/myportfolio.py b/gallery_dl/extractor/myportfolio.py index ac770e3b..baf07cbf 100644 --- a/gallery_dl/extractor/myportfolio.py +++ b/gallery_dl/extractor/myportfolio.py @@ -23,12 +23,12 @@ class MyportfolioGalleryExtractor(Extractor): subcategory = "gallery" directory_fmt = ("{category}", "{user}", "{title}") filename_fmt = "{num:>02}.{extension}" - archive_fmt = "{user}_{name}" + archive_fmt = "{user}_{filename}" pattern = BASE_PATTERN + r"/(?!projects/?$)([^/?&#]+)" test = ( ("https://hannahcosgrove.myportfolio.com/chloe", { "url": "d5cf993a05439a9d8a99590aa61e14e5ac8d0cd0", - "keyword": "cdb9ca8bdc16efa6ce04aba384f7932d1610b22f", + "keyword": "89b055a6ce833ba4f060ab1f97f086e58ce8bbd1", }), ("myportfolio:https://tooco.com.ar/6-of-diamonds-paradise-bird", { "count": 3, diff --git a/gallery_dl/extractor/newgrounds.py b/gallery_dl/extractor/newgrounds.py index e1302668..64d5ea91 100644 --- a/gallery_dl/extractor/newgrounds.py +++ b/gallery_dl/extractor/newgrounds.py @@ -97,7 +97,7 @@ class NewgroundsUserExtractor(NewgroundsExtractor): test = ( ("https://blitzwuff.newgrounds.com/art", { "url": "24b19c4a135a09889fac7b46a74e427e4308d02b", - "keyword": "68c235e5c4ce94f2f9e001d84fe801441e5500f1", + "keyword": "f221ddb00f51aa4f17a73809fd9be3c3352fc6b7", }), ("https://blitzwuff.newgrounds.com/"), ) @@ -115,12 +115,12 @@ class NewgroundsImageExtractor(NewgroundsExtractor): test = ( ("https://www.newgrounds.com/art/view/blitzwuff/ffx", { "url": "e7778c4597a2fb74b46e5f04bb7fa1d80ca02818", - "keyword": "5738e2bf19137898204f36c5ae573826672b612c", + "keyword": "731bf24b9fa7da3bdf094a0f6d181123aae16394", "content": "cb067d6593598710292cdd340d350d14a26fe075", }), ("https://art.ngfiles.com/images/587000/587551_blitzwuff_ffx.png", { "url": "e7778c4597a2fb74b46e5f04bb7fa1d80ca02818", - "keyword": "5738e2bf19137898204f36c5ae573826672b612c", + "keyword": "731bf24b9fa7da3bdf094a0f6d181123aae16394", }), ) diff --git a/gallery_dl/extractor/ngomik.py b/gallery_dl/extractor/ngomik.py index da042756..7412deac 100644 --- a/gallery_dl/extractor/ngomik.py +++ b/gallery_dl/extractor/ngomik.py @@ -20,7 +20,7 @@ class NgomikChapterExtractor(ChapterExtractor): r"(/[^/?&#]+-chapter-[^/?&#]+)") test = ("https://www.ngomik.in/14-sai-no-koi-chapter-1-6/", { "url": "8e67fdf751bbc79bc6f4dead7675008ddb8e32a4", - "keyword": "7cc913ed2b9018afbd3336755d28b8252d83044c", + "keyword": "204d177f09d438fd50c9c28d98c73289194640d8", }) def metadata(self, page): diff --git a/gallery_dl/extractor/nijie.py b/gallery_dl/extractor/nijie.py index 0129ea53..4f7bbe6e 100644 --- a/gallery_dl/extractor/nijie.py +++ b/gallery_dl/extractor/nijie.py @@ -127,7 +127,7 @@ class NijieUserExtractor(NijieExtractor): test = ( ("https://nijie.info/members_illust.php?id=44", { "url": "585d821df4716b1098660a0be426d01db4b65f2a", - "keyword": "1eb3387196f1f30d6d74a41f4c77faaadd588e52", + "keyword": "d629c69e3172db1d7e026145e8eb640ac31ac16a", }), ("https://nijie.info/members_illust.php?id=43", { "exception": exception.NotFoundError, @@ -175,7 +175,7 @@ class NijieImageExtractor(NijieExtractor): test = ( ("https://nijie.info/view.php?id=70720", { "url": "a10d4995645b5f260821e32c60a35f73546c2699", - "keyword": "0728fc3bbef1e192abfd59f88f07921d3d336804", + "keyword": "408393d010307c76d52cbd0a4368d6d357805aea", "content": "d85e3ea896ed5e4da0bca2390ad310a4df716ca6", }), ("https://nijie.info/view.php?id=70724", { diff --git a/gallery_dl/extractor/paheal.py b/gallery_dl/extractor/paheal.py index 9337b8d5..fc159d3a 100644 --- a/gallery_dl/extractor/paheal.py +++ b/gallery_dl/extractor/paheal.py @@ -47,7 +47,7 @@ class PahealTagExtractor(PahealExtractor): r"/post/list/([^/?&#]+)") test = ("https://rule34.paheal.net/post/list/k-on/1", { "url": "0f5a777cea524635760de32dd85a3de5ac5f3f43", - "keyword": "fddaa6329bae5b99e8a666eeeb1cb7721d21bf6d", + "keyword": "2ee365be3f21f40529ca742485de8f8090dcff7d", }) per_page = 70 @@ -96,7 +96,7 @@ class PahealPostExtractor(PahealExtractor): r"/post/view/(\d+)") test = ("https://rule34.paheal.net/post/view/481609", { "url": "3aa2189c8d1fa952a4d3420def93fd2bd54d6741", - "keyword": "d7a0bd6d8b0a5bd8300857044ed2d53d481d37cf", + "keyword": "99f631ebbde1324bbbedec40f0d4d6858619ba84", "content": "7b924bcf150b352ac75c9d281d061e174c851a11", }) diff --git a/gallery_dl/extractor/reactor.py b/gallery_dl/extractor/reactor.py index 4f4f507d..907772a3 100644 --- a/gallery_dl/extractor/reactor.py +++ b/gallery_dl/extractor/reactor.py @@ -254,19 +254,19 @@ class JoyreactorPostExtractor(ReactorPostExtractor): test = ( ("http://joyreactor.com/post/3721876", { # single image "url": "904779f6571436f3d5adbce30c2c272f6401e14a", - "keyword": "0d231f6ae36c5dca1f7eb71443bab3b2659fcacc", + "keyword": "e8deb51e66325341fe33f6e99938b8548093d34b", }), ("http://joyreactor.com/post/3713804", { # 4 images "url": "99c614416b959f22001f7da3f68df03b1551abdf", - "keyword": "1f0bf40f5030c803de6f8969099689e36fe885e6", + "keyword": "c5a6893e2425d31393139e355370e208754eb8fa", }), ("http://joyreactor.com/post/3726210", { # gif / video "url": "33a48e1eca6cb2d298fbbb6536b3283799d6515b", - "keyword": "b2514c20f59b9c521545e96ca1a9ad504d6fa7e5", + "keyword": "11cfce3f2ea336979ca6cc5da604fbe02aeda345", }), ("http://joyreactor.com/post/3668724", { # youtube embed "url": "be2589e2e8f3ffcaf41b34bc28bfad850ccea34a", - "keyword": "97e2cdef751fba13e43d789ddfb806683a903fae", + "keyword": "889206164b4a180aed6bf6186d2456cf31afbed8", }), ("http://joyreactor.cc/post/1299", { # "malformed" JSON "url": "d45337fec926159afe11c59e32d259d793dd00b3", diff --git a/gallery_dl/extractor/readcomiconline.py b/gallery_dl/extractor/readcomiconline.py index cb855c72..ff2db45b 100644 --- a/gallery_dl/extractor/readcomiconline.py +++ b/gallery_dl/extractor/readcomiconline.py @@ -31,7 +31,7 @@ class ReadcomiconlineIssueExtractor(ReadcomiconlineBase, ChapterExtractor): r"(/Comic/[^/?&#]+/[^/?&#]+\?id=(\d+))") test = ("https://readcomiconline.to/Comic/W-i-t-c-h/Issue-130?id=22289", { "url": "2bbab6ec4fbc05d269cca420a82a9b5acda28682", - "keyword": "c6de1c9c8a307dc4be56783c4ac6f1338ffac6fc", + "keyword": "30fe110273e871305001f33c18634516a0a51421", }) def __init__(self, match): diff --git a/gallery_dl/extractor/reddit.py b/gallery_dl/extractor/reddit.py index 99823440..fb446b73 100644 --- a/gallery_dl/extractor/reddit.py +++ b/gallery_dl/extractor/reddit.py @@ -128,7 +128,7 @@ class RedditImageExtractor(Extractor): """Extractor for reddit-hosted images""" category = "reddit" subcategory = "image" - archive_fmt = "{name}" + archive_fmt = "{filename}" pattern = (r"(?:https?://)?i\.redd(?:\.it|ituploads\.com)" r"/[^/?&#]+(?:\?[^#]*)?") test = ( diff --git a/gallery_dl/extractor/simplyhentai.py b/gallery_dl/extractor/simplyhentai.py index 90079254..63d95fc7 100644 --- a/gallery_dl/extractor/simplyhentai.py +++ b/gallery_dl/extractor/simplyhentai.py @@ -26,7 +26,7 @@ class SimplyhentaiGalleryExtractor(ChapterExtractor): (("https://original-work.simply-hentai.com" "/amazon-no-hiyaku-amazon-elixir"), { "url": "258289249990502c3138719cb89e995a60861e49", - "keyword": "5ea1498a1a902d76d337946910082755d168b941", + "keyword": "468a0a3db4fc6ad7fcae0facefb9753831c0404d", }), ("https://www.simply-hentai.com/notfound", { "exception": exception.GalleryDLException, @@ -91,11 +91,11 @@ class SimplyhentaiImageExtractor(Extractor): (("https://www.simply-hentai.com/image" "/pheromomania-vol-1-kanzenban-isao-3949d8b3-400c-4b6"), { "url": "0338eb137830ab6f81e5f410d3936ef785d063d9", - "keyword": "0209cc8657c80e2b5fed8f2f3f2aa3a57e2cc8b6", + "keyword": "e10e5588481cab68329ef6ec1e5325206b2079a2", }), ("https://www.simply-hentai.com/gif/8915dfcf-0b6a-47c", { "url": "11c060d7ec4dfd0bd105300b6e1fd454674a5af1", - "keyword": "de26851c4eb7a204364ea26943b1581a0fd43da5", + "keyword": "dd97a4bb449c397d6fec9f43a1303c0fb168ae65", }), ) @@ -124,7 +124,7 @@ class SimplyhentaiImageExtractor(Extractor): "tags": tags, "type": self.type, }) - data["token"] = data["name"].rpartition("_")[2] + data["token"] = data["filename"].rpartition("_")[2] yield Message.Version, 1 yield Message.Directory, data @@ -143,13 +143,13 @@ class SimplyhentaiVideoExtractor(Extractor): ("https://videos.simply-hentai.com/creamy-pie-episode-02", { "pattern": r"https://www\.googleapis\.com/drive/v3/files" r"/0B1ecQ8ZVLm3JcHZzQzBnVy1ZUmc\?alt=media&key=[\w-]+", - "keyword": "5aefc5c15ae4f56beee93ad2ff2a68cf0c3e6f29", + "keyword": "29d63987fed33f0a9f4b3786d1d71b03d793250a", "count": 1, }), (("https://videos.simply-hentai.com" "/1715-tifa-in-hentai-gang-bang-3d-movie"), { "url": "ad9a36ae06c601b6490e3c401834b4949d947eb0", - "keyword": "9cbd03aab04c3f258cb14d13d45c703969ed54ab", + "keyword": "c561341aa3c6999f615abf1971d28fb2a83da2a7", }), ) diff --git a/gallery_dl/extractor/smugmug.py b/gallery_dl/extractor/smugmug.py index ca573632..037a92b0 100644 --- a/gallery_dl/extractor/smugmug.py +++ b/gallery_dl/extractor/smugmug.py @@ -98,13 +98,13 @@ class SmugmugImageExtractor(SmugmugExtractor): test = ( ("https://acapella.smugmug.com/Micro-Macro/Drops/i-g2Dmf9z", { "url": "78f0bf3516b6d670b7319216bdeccb35942ca4cf", - "keyword": "8ebb25fb493d3cd5cfcb8f3a4601fa721afe1d83", + "keyword": "f913cc0db3fa4b3799828a25a426fcc0aa80784c", "content": "64a8f69a1d824921eebbdf2420087937adfa45cd", }), # no "ImageOwner" ("https://www.smugmug.com/gallery/n-GLCjnD/i-JD62fQk", { "url": "d4047637947b35e4ef49e3c7cb70303cc224a3a0", - "keyword": "0a1b12efd789c42d9b061f01b2a1fcfd6af32003", + "keyword": "63ed3f5f9e5d52e317a83a8c7c8f1c3d6a2239fc", }), ) diff --git a/gallery_dl/extractor/tumblr.py b/gallery_dl/extractor/tumblr.py index cecf0a9f..4f91028c 100644 --- a/gallery_dl/extractor/tumblr.py +++ b/gallery_dl/extractor/tumblr.py @@ -155,7 +155,7 @@ class TumblrExtractor(Extractor): def _prepare(url, post): text.nameext_from_url(url, post) post["num"] += 1 - post["hash"] = post["name"].partition("_")[2] + post["hash"] = post["filename"].partition("_")[2] return Message.Url, url, post @staticmethod @@ -163,12 +163,12 @@ class TumblrExtractor(Extractor): text.nameext_from_url(url, post) post["num"] += 1 - parts = post["name"].split("_") + parts = post["filename"].split("_") try: post["hash"] = parts[1] if parts[1] != "inline" else parts[2] except IndexError: # filename doesn't follow the usual pattern (#129) - post["hash"] = post["name"] + post["hash"] = post["filename"] return Message.Url, url, post diff --git a/gallery_dl/extractor/twitter.py b/gallery_dl/extractor/twitter.py index a8cbcbdb..201b3a62 100644 --- a/gallery_dl/extractor/twitter.py +++ b/gallery_dl/extractor/twitter.py @@ -105,7 +105,7 @@ class TwitterTimelineExtractor(TwitterExtractor): test = ("https://twitter.com/PicturesEarth", { "range": "1-40", "url": "2f4d51cbba81e56c1c755677b3ad58fc167c9771", - "keyword": "cbae53b6f4ba133078bb13c95dbd3cbb4fa40b9f", + "keyword": "19c02623fa144ca9a863b1f687ab749b3b8e38a5", }) def tweets(self): @@ -138,12 +138,12 @@ class TwitterTweetExtractor(TwitterExtractor): test = ( ("https://twitter.com/PicturesEarth/status/672897688871018500", { "url": "d9e68d41301d2fe382eb27711dea28366be03b1a", - "keyword": "46c8e739a892000848a8a2184da91346c9cbe4bf", + "keyword": "fb19f00ab96a854f7de6e1eb85d632565c8a1a43", "content": "a1f2f04cb2d8df24b1afa7a39910afda23484342", }), ("https://twitter.com/perrypumas/status/894001459754180609", { "url": "c8a262a9698cb733fb27870f5a8f75faf77d79f6", - "keyword": "7729cd3ff16a5647b0b5ffdec9d428c91eedafbe", + "keyword": "3e665d795fcd3ddd0c2f18c9b6b56fc3267fdf7d", }), ) diff --git a/gallery_dl/text.py b/gallery_dl/text.py index ec5d25d6..b9961053 100644 --- a/gallery_dl/text.py +++ b/gallery_dl/text.py @@ -73,8 +73,8 @@ def nameext_from_url(url, data=None): """Extract the last part of an URL and fill 'data' accordingly""" if data is None: data = {} - data["filename"] = unquote(filename_from_url(url)) - data["name"], ext = os.path.splitext(data["filename"]) + name = unquote(filename_from_url(url)) + data["filename"], ext = os.path.splitext(name) data["extension"] = ext[1:].lower() return data diff --git a/test/test_downloader.py b/test/test_downloader.py index e7cc6628..3f301b09 100644 --- a/test/test_downloader.py +++ b/test/test_downloader.py @@ -45,7 +45,7 @@ class TestDownloaderBase(unittest.TestCase): kwdict = { "category": "test", "subcategory": "test", - "name": name, + "filename": name, "extension": extension, } pathfmt = PathFormat(cls.extractor) diff --git a/test/test_text.py b/test/test_text.py index 00960953..da85ab81 100644 --- a/test/test_text.py +++ b/test/test_text.py @@ -122,9 +122,8 @@ class TestText(unittest.TestCase): self.assertEqual(f(value), "") def test_nameext_from_url(self, f=text.nameext_from_url): - empty = {"filename": "", "name": "", "extension": ""} - result = {"filename": "filename.ext", - "name": "filename", "extension": "ext"} + empty = {"filename": "", "extension": ""} + result = {"filename": "filename", "extension": "ext"} # standard usage self.assertEqual(f(""), empty)