From 3f8ff692a7b82be276fc27220d3ea1e16a7215cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 10 Aug 2023 21:28:48 +0200 Subject: [PATCH] [bunkr] fix media domain for cdn9 Fixes #4386 --- gallery_dl/extractor/bunkr.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gallery_dl/extractor/bunkr.py b/gallery_dl/extractor/bunkr.py index 35b27525..538317ed 100644 --- a/gallery_dl/extractor/bunkr.py +++ b/gallery_dl/extractor/bunkr.py @@ -10,6 +10,12 @@ from .lolisafe import LolisafeAlbumExtractor from .. import text +from urllib.parse import urlsplit, urlunsplit + +MEDIA_DOMAIN_OVERRIDES = { + "cdn9.bunkr.ru" : "c9.bunkr.ru", + "cdn12.bunkr.ru": "media-files12.bunkr.la", +} class BunkrAlbumExtractor(LolisafeAlbumExtractor): @@ -92,11 +98,12 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor): url = text.unescape(url) if url.endswith((".mp4", ".m4v", ".mov", ".webm", ".mkv", ".ts", ".zip", ".rar", ".7z")): - if url.startswith("https://cdn12."): - url = ("https://media-files12.bunkr.la" + - url[url.find("/", 14):]) + scheme, domain, path, query, fragment = urlsplit(url) + if domain in MEDIA_DOMAIN_OVERRIDES: + domain = MEDIA_DOMAIN_OVERRIDES[domain] else: - url = url.replace("://cdn", "://media-files", 1) + domain = domain.replace("cdn", "media-files", 1) + url = urlunsplit((scheme, domain, path, query, fragment)) append({"file": url, "_http_headers": headers}) return files, {