diff --git a/docs/configuration.rst b/docs/configuration.rst index d9edf5e0..09173ba4 100644 --- a/docs/configuration.rst +++ b/docs/configuration.rst @@ -729,7 +729,7 @@ Type Default ``false`` Description - Download extra Sta.sh resources from + Download embedded Deviations and Sta.sh resources from description texts and journals. Note: Enabling this option also enables deviantart.metadata_. diff --git a/gallery_dl/extractor/deviantart.py b/gallery_dl/extractor/deviantart.py index 2eb3b28d..47286b76 100644 --- a/gallery_dl/extractor/deviantart.py +++ b/gallery_dl/extractor/deviantart.py @@ -78,6 +78,10 @@ class DeviantartExtractor(Extractor): else: self.user = profile["user"]["username"] + if self.extra: + finditer_stash = DeviantartStashExtractor.pattern.finditer + finditer_deviation = DeviantartDeviationExtractor.pattern.finditer + yield Message.Version, 1 for deviation in self.deviations(): if isinstance(deviation, tuple): @@ -134,10 +138,14 @@ class DeviantartExtractor(Extractor): if self.extra: txt = (deviation.get("description", "") + deviation.get("_journal", "")) - for match in DeviantartStashExtractor.pattern.finditer(txt): + for match in finditer_stash(txt): url = text.ensure_http_scheme(match.group(0)) deviation["_extractor"] = DeviantartStashExtractor yield Message.Queue, url, deviation + for match in finditer_deviation(txt): + url = text.ensure_http_scheme(match.group(0)) + deviation["_extractor"] = DeviantartDeviationExtractor + yield Message.Queue, url, deviation def deviations(self): """Return an iterable containing all relevant Deviation-objects"""