diff --git a/gallery_dl/extractor/bunkr.py b/gallery_dl/extractor/bunkr.py index b2f6431b..cf5bce10 100644 --- a/gallery_dl/extractor/bunkr.py +++ b/gallery_dl/extractor/bunkr.py @@ -160,7 +160,7 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor): file = self._extract_file(data_id) file["name"] = util.json_loads(text.extr( - item, 'original:', ',\n')) + item, 'original:', ',\n').replace("\\'", "'")) file["slug"] = util.json_loads(text.extr( item, 'slug: ', ',\n')) file["uuid"] = text.extr( @@ -175,7 +175,7 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor): raise except Exception as exc: self.log.error("%s: %s", exc.__class__.__name__, exc) - self.log.debug("", exc_info=exc) + self.log.debug("%s", item, exc_info=exc) def _extract_file(self, data_id): referer = f"{self.root_dl}/file/{data_id}" @@ -219,8 +219,8 @@ class BunkrMediaExtractor(BunkrAlbumExtractor): page = self.request(f"{self.root}{album_id}").text data_id = text.extr(page, 'data-file-id="', '"') file = self._extract_file(data_id) - file["name"] = text.unescape(text.extr( - page, "")[2]) + file["name"] = text.unquote(text.unescape(text.extr( + page, "")[2])) file["slug"] = album_id.rpartition("/")[2] file["uuid"] = text.extr(page, "/thumbs/", ".") except Exception as exc: diff --git a/test/results/bunkr.py b/test/results/bunkr.py index 0c7177f7..b2f2219b 100644 --- a/test/results/bunkr.py +++ b/test/results/bunkr.py @@ -39,7 +39,10 @@ __tests__ = ( "#results" : ( "https://mlk-bk.cdn.gigachad-cdn.ru/image-sZrQUeOx.jpg", ), - "#sha1_content": "55998743751dfe008d0e95605114fcbfa7dc4de8", + "#sha1_content": ( + "55998743751dfe008d0e95605114fcbfa7dc4de8", + "caf7c3d3439d94e83b3c24ddaf5a3a48aa057519", + ), "album_id" : "iXTTc1o2", "album_name" : "test2", @@ -196,6 +199,42 @@ __tests__ = ( "#class" : bunkr.BunkrAlbumExtractor, }, +{ + "#url" : "https://bunkr.cr/a/z5Xt6NqH", + "#comment" : "filenames (#8150)", + "#category": ("lolisafe", "bunkr", "album"), + "#class" : bunkr.BunkrAlbumExtractor, + "#results" : ( + "https://beer.bunkr.ru/acba241d-c1e8-40c3-aa73-94daf75fcd13.jpg", + "https://cake.bunkr.ru/e997f757-61dc-45be-bd61-b6998d813beb.jpg", + "https://cake.bunkr.ru/72f1e20b-72a5-43b0-8ab2-472016e1d767.mp4", + ), + + "album_id" : "z5Xt6NqH", + "album_name": "filename", + "album_size": "1.82 MB", + "count" : 3, + "date" : "type:datetime", + "extension" : {"jpg", "mp4"}, + "file" : str, + "id" : "", + "name" : str, + "num" : range(1, 3), + "id_url" : {"53118207", "53118010", "53117871"}, + "size" : {490885, 727670, 687238}, + "slug" : {"Nzt1ID7lsgwR4", "Bu0e2k6gOB5di", "PwrDbEgQODSls"}, + "filename" : { + "'\"'", + "😃", + """filename: !"#$%&\'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]""", + }, + "uuid" : { + "acba241d-c1e8-40c3-aa73-94daf75fcd13", + "e997f757-61dc-45be-bd61-b6998d813beb", + "72f1e20b-72a5-43b0-8ab2-472016e1d767", + }, +}, + { "#url" : "https://bunkr.black/i/image-sZrQUeOx.jpg", "#category": ("lolisafe", "bunkr", "media"), @@ -277,4 +316,18 @@ __tests__ = ( "name" : "IMG_47272f2c698d257fd22f4300ae98ec35929b", }, +{ + "#url" : "https://bunkr.pk/f/Nzt1ID7lsgwR4", + "#category": ("lolisafe", "bunkr", "media"), + "#class" : bunkr.BunkrMediaExtractor, + "#results" : "https://beer.bunkr.ru/acba241d-c1e8-40c3-aa73-94daf75fcd13.jpg", + + "filename" : "'\"'", + "id" : "", + "id_url" : "53118207", + "name" : "'\"'", + "slug" : "Nzt1ID7lsgwR4", + "uuid" : "acba241d-c1e8-40c3-aa73-94daf75fcd13", +}, + )