diff --git a/gallery_dl/extractor/bunkr.py b/gallery_dl/extractor/bunkr.py index 14ebc485..e543ac2a 100644 --- a/gallery_dl/extractor/bunkr.py +++ b/gallery_dl/extractor/bunkr.py @@ -11,6 +11,7 @@ from .common import Extractor from .lolisafe import LolisafeAlbumExtractor from .. import text, util, config, exception +from ..cache import memcache import random if config.get(("extractor", "bunkr"), "tlds"): @@ -227,10 +228,26 @@ class BunkrMediaExtractor(BunkrAlbumExtractor): self.log.error("%s: %s", exc.__class__.__name__, exc) return (), {} + album_id, album_name, album_size = self._album_info(text.extr( + page, ' href="../a/', '"')) return (file,), { - "album_id" : "", - "album_name" : "", - "album_size" : -1, - "description": "", - "count" : 1, + "album_id" : album_id, + "album_name": album_name, + "album_size": album_size, + "count" : 1, } + + @memcache(keyarg=1) + def _album_info(self, album_id): + if album_id: + try: + page = self.request(f"{self.root}/a/{album_id}").text + return ( + album_id, + text.unescape(text.unescape(text.extr( + page, 'property="og:title" content="', '"'))), + text.extr(page, '(', ')'), + ) + except Exception: + pass + return album_id, "", -1 diff --git a/test/results/bunkr.py b/test/results/bunkr.py index b2f2219b..1ecbd497 100644 --- a/test/results/bunkr.py +++ b/test/results/bunkr.py @@ -240,7 +240,10 @@ __tests__ = ( "#category": ("lolisafe", "bunkr", "media"), "#class" : bunkr.BunkrMediaExtractor, "#results" : "https://mlk-bk.cdn.gigachad-cdn.ru/image-sZrQUeOx.jpg", - "#sha1_content": "55998743751dfe008d0e95605114fcbfa7dc4de8", + "#sha1_content": ( + "55998743751dfe008d0e95605114fcbfa7dc4de8", + "caf7c3d3439d94e83b3c24ddaf5a3a48aa057519", + ), "count" : 1, "extension": "jpg", @@ -330,4 +333,25 @@ __tests__ = ( "uuid" : "acba241d-c1e8-40c3-aa73-94daf75fcd13", }, +{ + "#url" : "https://bunkr.cr/f/mX1DBQooiUOJ9", + "#comment" : "'album_...' metadata from '/f/' URL (#8405)", + "#category": ("lolisafe", "bunkr", "media"), + "#class" : bunkr.BunkrMediaExtractor, + "#results" : "https://rum.bunkr.ru/edf721b7-618b-4214-9305-845e1d210437.png", + + "album_id" : "MwY4XLNV", + "album_name": "foo & bar", + "album_size": "3.54 MB", + "count" : 1, + "extension" : "png", + "filename" : "danbooru_10113035_fe864be2aa86487e5b08c768be78b787", + "id" : "", + "id_url" : "54661720", + "name" : "danbooru_10113035_fe864be2aa86487e5b08c768be78b787", + "num" : 1, + "slug" : "mX1DBQooiUOJ9", + "uuid" : "edf721b7-618b-4214-9305-845e1d210437", +}, + )