[bunkr] fix '/d/' file URLs (#4685)
This commit is contained in:
@@ -55,11 +55,7 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor):
|
|||||||
for url in urls:
|
for url in urls:
|
||||||
if url.startswith("/"):
|
if url.startswith("/"):
|
||||||
try:
|
try:
|
||||||
page = self.request(self.root + text.unescape(url)).text
|
url = self._extract_file(text.unescape(url))
|
||||||
if url[1] == "v":
|
|
||||||
url = text.extr(page, '<source src="', '"')
|
|
||||||
else:
|
|
||||||
url = text.extr(page, '<img src="', '"')
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
self.log.error("%s: %s", exc.__class__.__name__, exc)
|
self.log.error("%s: %s", exc.__class__.__name__, exc)
|
||||||
continue
|
continue
|
||||||
@@ -75,24 +71,28 @@ class BunkrAlbumExtractor(LolisafeAlbumExtractor):
|
|||||||
|
|
||||||
yield {"file": text.unescape(url)}
|
yield {"file": text.unescape(url)}
|
||||||
|
|
||||||
|
def _extract_file(self, path):
|
||||||
|
page = self.request(self.root + path).text
|
||||||
|
if path[1] == "v":
|
||||||
|
url = text.extr(page, '<source src="', '"')
|
||||||
|
else:
|
||||||
|
url = text.extr(page, '<img src="', '"')
|
||||||
|
if not url:
|
||||||
|
url = text.rextract(
|
||||||
|
page, ' href="', '"', page.rindex("Download"))[0]
|
||||||
|
return url
|
||||||
|
|
||||||
class BunkrMediaExtractor(LolisafeAlbumExtractor):
|
|
||||||
|
class BunkrMediaExtractor(BunkrAlbumExtractor):
|
||||||
"""Extractor for bunkrr.su media links"""
|
"""Extractor for bunkrr.su media links"""
|
||||||
category = "bunkr"
|
|
||||||
subcategory = "media"
|
subcategory = "media"
|
||||||
root = "https://bunkrr.su"
|
|
||||||
directory_fmt = ("{category}",)
|
directory_fmt = ("{category}",)
|
||||||
pattern = BASE_PATTERN + r"/[vi]/([^/?#]+)"
|
pattern = BASE_PATTERN + r"/[vid]/([^/?#]+)"
|
||||||
example = "https://bunkrr.su/v/FILENAME"
|
example = "https://bunkrr.su/v/FILENAME"
|
||||||
|
|
||||||
def fetch_album(self, album_id):
|
def fetch_album(self, album_id):
|
||||||
try:
|
try:
|
||||||
path = urlsplit(self.url).path
|
url = self._extract_file(urlsplit(self.url).path)
|
||||||
page = self.request(self.root + path).text
|
|
||||||
if path[1] == "v":
|
|
||||||
url = text.extr(page, '<source src="', '"')
|
|
||||||
else:
|
|
||||||
url = text.extr(page, '<img src="', '"')
|
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
self.log.error("%s: %s", exc.__class__.__name__, exc)
|
self.log.error("%s: %s", exc.__class__.__name__, exc)
|
||||||
return (), {}
|
return (), {}
|
||||||
|
|||||||
Reference in New Issue
Block a user