[deviantart] extend functionality of 'original' option

This commit is contained in:
Mike Fährmann
2018-10-10 21:19:45 +02:00
parent c00dce2adc
commit d8492df51b
2 changed files with 16 additions and 7 deletions

View File

@@ -12,6 +12,7 @@ from .common import Extractor, Message
from .. import text, exception
from ..cache import cache, memcache
import itertools
import mimetypes
import datetime
import time
import math
@@ -70,8 +71,7 @@ class DeviantartExtractor(Extractor):
content = deviation["content"]
if (self.original and deviation["is_downloadable"] and
content["filesize"] != deviation["download_filesize"]):
content.update(
self.api.deviation_download(deviation["deviationid"]))
self._update_content(deviation, content)
yield self.commit(deviation, content)
if "videos" in deviation:
@@ -194,6 +194,15 @@ class DeviantartExtractor(Extractor):
url = "{}/{}/{}/0/".format(self.root, self.user, category)
return [(url + folder["name"], folder) for folder in folders]
def _update_content(self, deviation, content):
data = self.api.deviation_download(deviation["deviationid"])
if self.original == "images":
url = data["src"].partition("?")[0]
mtype = mimetypes.guess_type(url, False)[0]
if not mtype or not mtype.startswith("image/"):
return
content.update(data)
class DeviantartGalleryExtractor(DeviantartExtractor):
"""Extractor for all deviations from an artist's gallery"""