[nsfwalbum] use fallback for deleted content (fixes #1259)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Copyright 2019 Mike Fährmann
|
# Copyright 2019-2021 Mike Fährmann
|
||||||
#
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# 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
|
# it under the terms of the GNU General Public License version 2 as
|
||||||
@@ -44,16 +44,23 @@ class NsfwalbumAlbumExtractor(GalleryExtractor):
|
|||||||
iframe = self.root + "/iframe_image.php?id="
|
iframe = self.root + "/iframe_image.php?id="
|
||||||
backend = self.root + "/backend.php"
|
backend = self.root + "/backend.php"
|
||||||
for image_id in text.extract_iter(page, 'data-img-id="', '"'):
|
for image_id in text.extract_iter(page, 'data-img-id="', '"'):
|
||||||
spirit = text.extract(self.request(
|
spirit = self._annihilate(text.extract(self.request(
|
||||||
iframe + image_id).text, 'giraffe.annihilate("', '"')[0]
|
iframe + image_id).text, 'giraffe.annihilate("', '"')[0])
|
||||||
params = {"spirit": self._annihilate(spirit), "photo": image_id}
|
params = {"spirit": spirit, "photo": image_id}
|
||||||
data = self.request(backend, params=params).json()
|
data = self.request(backend, params=params).json()
|
||||||
yield data[0], {
|
yield data[0], {
|
||||||
"id" : text.parse_int(image_id),
|
"id" : text.parse_int(image_id),
|
||||||
"width" : text.parse_int(data[1]),
|
"width" : text.parse_int(data[1]),
|
||||||
"height": text.parse_int(data[2]),
|
"height": text.parse_int(data[2]),
|
||||||
|
"_http_validate": self._validate_response,
|
||||||
|
"_fallback": ("{}/imageProxy.php?photoId={}&spirit={}".format(
|
||||||
|
self.root, image_id, spirit),),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def _validate_response(response):
|
||||||
|
return not response.request.url.endswith("/no_image.jpg")
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _annihilate(value, base=6):
|
def _annihilate(value, base=6):
|
||||||
return "".join(
|
return "".join(
|
||||||
|
|||||||
Reference in New Issue
Block a user