aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/bunkr.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/bunkr.py')
-rw-r--r--gallery_dl/extractor/bunkr.py17
1 files changed, 9 insertions, 8 deletions
diff --git a/gallery_dl/extractor/bunkr.py b/gallery_dl/extractor/bunkr.py
index 481e962..eba1678 100644
--- a/gallery_dl/extractor/bunkr.py
+++ b/gallery_dl/extractor/bunkr.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
-# Copyright 2022-2023 Mike Fährmann
+# Copyright 2022-2025 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
@@ -61,6 +61,7 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor):
category = "bunkr"
root = "https://bunkr.si"
root_dl = "https://get.bunkrr.su"
+ root_api = "https://apidl.bunkr.ru"
archive_fmt = "{album_id}_{id|id_url}"
pattern = BASE_PATTERN + r"/a/([^/?#]+)"
example = "https://bunkr.si/a/ID"
@@ -76,9 +77,9 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor):
endpoint = self.config("endpoint")
if not endpoint:
- endpoint = self.root_dl + "/api/_001"
+ endpoint = self.root_api + "/api/_001_v2"
elif endpoint[0] == "/":
- endpoint = self.root_dl + endpoint
+ endpoint = self.root_api + endpoint
self.endpoint = endpoint
self.offset = 0
@@ -123,7 +124,7 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor):
pass
else:
if not DOMAINS:
- raise exception.StopExtraction(
+ raise exception.AbortExtraction(
"All Bunkr domains require solving a CF challenge")
# select alternative domain
@@ -168,7 +169,7 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor):
info[-1], "%H:%M:%S %d/%m/%Y")
yield file
- except exception.StopExtraction:
+ except exception.ControlException:
raise
except Exception as exc:
self.log.error("%s: %s", exc.__class__.__name__, exc)
@@ -180,11 +181,11 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor):
referer = self.root_dl + "/file/" + data_id
headers = {"Referer": referer, "Origin": self.root_dl}
- data = self.request(self.endpoint, method="POST", headers=headers,
- json={"id": data_id}).json()
+ data = self.request_json(self.endpoint, method="POST", headers=headers,
+ json={"id": data_id})
if data.get("encrypted"):
- key = "SECRET_KEY_{}".format(data["timestamp"] // 3600)
+ key = f"SECRET_KEY_{data['timestamp'] // 3600}"
file_url = util.decrypt_xor(data["url"], key.encode())
else:
file_url = data["url"]