summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/skeb.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/skeb.py')
-rw-r--r--gallery_dl/extractor/skeb.py19
1 files changed, 10 insertions, 9 deletions
diff --git a/gallery_dl/extractor/skeb.py b/gallery_dl/extractor/skeb.py
index 38a2d16..6ec44ba 100644
--- a/gallery_dl/extractor/skeb.py
+++ b/gallery_dl/extractor/skeb.py
@@ -7,7 +7,7 @@
"""Extractors for https://skeb.jp/"""
from .common import Extractor, Message
-from .. import text, exception
+from .. import text
import itertools
@@ -31,14 +31,15 @@ class SkebExtractor(Extractor):
if "Authorization" not in self.session.headers:
self.headers["Authorization"] = "Bearer null"
- def request(self, url, **kwargs):
- while True:
- try:
- return Extractor.request(self, url, **kwargs)
- except exception.HttpError as exc:
- if exc.status == 429 and "request_key" in exc.response.cookies:
- continue
- raise
+ def _handle_429(self, response):
+ if "request_key" in response.cookies:
+ return True
+
+ request_key = text.extr(
+ response.text, "request_key=", ";")
+ if request_key:
+ self.cookies.set("request_key", request_key, domain="skeb.jp")
+ return True
def items(self):
metadata = self.metadata()