[pixeldrain] warn about hotlink-protected files (#8803)

https://github.com/mikf/gallery-dl/issues/8803#issuecomment-3733498009
This commit is contained in:
Mike Fährmann
2026-01-14 12:58:42 +01:00
parent 51d55224e3
commit 0230a776af

View File

@@ -24,6 +24,16 @@ class PixeldrainExtractor(Extractor):
if api_key := self.config("api-key"):
self.session.auth = util.HTTPBasicAuth("", api_key)
def _available(self, file):
if not file.get("availability"):
return True
self.status |= 1
self.log.debug(file["availability"])
self.log.warning(
"%s: '%s'", file["name"], file["availability_message"])
return False
class PixeldrainFileExtractor(PixeldrainExtractor):
"""Extractor for pixeldrain files"""
@@ -45,7 +55,12 @@ class PixeldrainFileExtractor(PixeldrainExtractor):
text.nameext_from_name(file["name"], file)
yield Message.Directory, "", file
yield Message.Url, file["url"], file
if file.get("availability"):
self.status |= 1
self.log.debug(file["availability"])
self.log.error("'%s'", file["availability_message"])
else:
yield Message.Url, file["url"], file
class PixeldrainAlbumExtractor(PixeldrainExtractor):
@@ -103,6 +118,8 @@ class PixeldrainAlbumExtractor(PixeldrainExtractor):
yield Message.Directory, "", {"album": album}
for num, file in enumerate(files, idx+1):
if not self._available(file):
continue
file["album"] = album
file["num"] = num
file["url"] = url = f"{self.root}/api/file/{file['id']}?download"
@@ -156,6 +173,8 @@ class PixeldrainFolderExtractor(PixeldrainExtractor):
for child in children:
if child["type"] == "file":
num += 1
if not self._available(child):
continue
url = f"{self.root}/api/filesystem{child['path']}?attach"
share_url = f"{self.root}/d{child['path']}"
data = self.metadata(child)