aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/deviantart.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/deviantart.py')
-rw-r--r--gallery_dl/extractor/deviantart.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/gallery_dl/extractor/deviantart.py b/gallery_dl/extractor/deviantart.py
index 1852dc1..2ba47e1 100644
--- a/gallery_dl/extractor/deviantart.py
+++ b/gallery_dl/extractor/deviantart.py
@@ -48,6 +48,7 @@ class DeviantartExtractor(Extractor):
self.quality = self.config("quality", "100")
self.original = self.config("original", True)
self.comments = self.config("comments", False)
+ self.intermediary = self.config("intermediary", True)
self.api = DeviantartOAuthAPI(self)
self.group = False
@@ -136,12 +137,13 @@ class DeviantartExtractor(Extractor):
elif self.jwt:
self._update_token(deviation, content)
elif content["src"].startswith("https://images-wixmp-"):
- if deviation["index"] <= 790677560:
+ if self.intermediary and deviation["index"] <= 790677560:
# https://github.com/r888888888/danbooru/issues/4069
intermediary, count = re.subn(
r"(/f/[^/]+/[^/]+)/v\d+/.*",
r"/intermediary\1", content["src"], 1)
if count:
+ deviation["is_original"] = False
deviation["_fallback"] = (content["src"],)
content["src"] = intermediary
if self.quality:
@@ -1003,8 +1005,9 @@ class DeviantartOAuthAPI():
self.strategy = extractor.config("pagination")
self.public = extractor.config("public", True)
- self.client_id = extractor.config("client-id")
- if self.client_id:
+ client_id = extractor.config("client-id")
+ if client_id:
+ self.client_id = str(client_id)
self.client_secret = extractor.config("client-secret")
else:
self.client_id = self.CLIENT_ID
@@ -1012,7 +1015,7 @@ class DeviantartOAuthAPI():
token = extractor.config("refresh-token")
if token is None or token == "cache":
- token = "#" + str(self.client_id)
+ token = "#" + self.client_id
if not _refresh_token_cache(token):
token = None
self.refresh_token_key = token
@@ -1578,7 +1581,7 @@ class DeviantartEclipseAPI():
return token
-@cache(maxage=100*365*86400, keyarg=0)
+@cache(maxage=36500*86400, keyarg=0)
def _refresh_token_cache(token):
if token and token[0] == "#":
return None