From bd5d08abbcd5729c93a85d2189bef1561959b3b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Wed, 15 Feb 2023 19:47:15 +0100 Subject: [PATCH] [catbox] add 'file' extractor (#3570) --- docs/supportedsites.md | 2 +- gallery_dl/extractor/catbox.py | 27 +++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/docs/supportedsites.md b/docs/supportedsites.md index 34d6f059..46429d79 100644 --- a/docs/supportedsites.md +++ b/docs/supportedsites.md @@ -118,7 +118,7 @@ Consider all sites to be NSFW unless otherwise known. Catbox https://catbox.moe/ - Albums + Albums, Files diff --git a/gallery_dl/extractor/catbox.py b/gallery_dl/extractor/catbox.py index 509108ff..7a21d2a4 100644 --- a/gallery_dl/extractor/catbox.py +++ b/gallery_dl/extractor/catbox.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright 2022 Mike Fährmann +# Copyright 2022-2023 Mike Fährmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as @@ -8,7 +8,7 @@ """Extractors for https://catbox.moe/""" -from .common import GalleryExtractor +from .common import GalleryExtractor, Extractor, Message from .. import text @@ -54,3 +54,26 @@ class CatboxAlbumExtractor(GalleryExtractor): for path in text.extract_iter( page, ">https://files.catbox.moe/", "<") ] + + +class CatboxFileExtractor(Extractor): + """Extractor for catbox files""" + category = "catbox" + subcategory = "file" + archive_fmt = "{filename}" + pattern = r"(?:https?://)?(?:files|litter|de)\.catbox\.moe/([^/?#]+)" + test = ( + ("https://files.catbox.moe/8ih3y7.png", { + "pattern": r"^https://files\.catbox\.moe/8ih3y7\.png$", + "content": "0c8768055e4e20e7c7259608b67799171b691140", + "count": 1, + }), + ("https://litter.catbox.moe/t8v3n9.png"), + ("https://de.catbox.moe/bjdmz1.jpg"), + ) + + def items(self): + url = text.ensure_http_scheme(self.url) + file = text.nameext_from_url(url, {"url": url}) + yield Message.Directory, file + yield Message.Url, url, file