From 4e95cef6d2976a53e59056f694bc46a2141ee414 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Thu, 29 Jul 2021 15:29:37 +0200 Subject: [PATCH] [nsfwalbum] retry backend requests (fixes #1733) --- gallery_dl/extractor/nsfwalbum.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/gallery_dl/extractor/nsfwalbum.py b/gallery_dl/extractor/nsfwalbum.py index 9c4d6860..43c08562 100644 --- a/gallery_dl/extractor/nsfwalbum.py +++ b/gallery_dl/extractor/nsfwalbum.py @@ -43,11 +43,24 @@ class NsfwalbumAlbumExtractor(GalleryExtractor): def images(self, page): iframe = self.root + "/iframe_image.php?id=" backend = self.root + "/backend.php" + retries = self._retries + for image_id in text.extract_iter(page, 'data-img-id="', '"'): spirit = self._annihilate(text.extract(self.request( iframe + image_id).text, 'giraffe.annihilate("', '"')[0]) params = {"spirit": spirit, "photo": image_id} - data = self.request(backend, params=params).json() + + tries = 0 + while tries <= retries: + try: + data = self.request(backend, params=params).json() + break + except Exception: + tries += 1 + else: + self.log.warning("Unable to fetch image %s", image_id) + continue + yield data[0], { "id" : text.parse_int(image_id), "width" : text.parse_int(data[1]),