diff --git a/gallery_dl/extractor/deviantart.py b/gallery_dl/extractor/deviantart.py index fb163085..9cbb21c2 100644 --- a/gallery_dl/extractor/deviantart.py +++ b/gallery_dl/extractor/deviantart.py @@ -18,12 +18,12 @@ import binascii import time import re - BASE_PATTERN = ( r"(?:https?://)?(?:" r"(?:www\.)?(?:fx)?deviantart\.com/(?!watch/)([\w-]+)|" r"(?!www\.)([\w-]+)\.(?:fx)?deviantart\.com)" ) +DEFAULT_AVATAR = "https://a.deviantart.net/avatars/default.gif" class DeviantartExtractor(Extractor): @@ -177,6 +177,10 @@ class DeviantartExtractor(Extractor): for comment in deviation["comments"]: user = comment["user"] name = user["username"].lower() + if user["usericon"] == DEFAULT_AVATAR: + self.log.debug( + "Skipping avatar of '%s' (default)", name) + continue _user_details.update(name, user) url = "{}/{}/avatar/".format(self.root, name) @@ -585,6 +589,10 @@ class DeviantartAvatarExtractor(DeviantartExtractor): return () icon = user["usericon"] + if icon == DEFAULT_AVATAR: + self.log.debug("Skipping avatar of '%s' (default)", name) + return () + _, sep, index = icon.rpartition("?") if not sep: index = "0" diff --git a/test/results/deviantart.py b/test/results/deviantart.py index 599ca9ff..2ffc485a 100644 --- a/test/results/deviantart.py +++ b/test/results/deviantart.py @@ -252,6 +252,14 @@ __tests__ = ( ), }, +{ + "#url" : "https://deviantart.com/h3813067/avatar", + "#comment" : "default avatar (#5276)", + "#category": ("", "deviantart", "avatar"), + "#class" : deviantart.DeviantartAvatarExtractor, + "#count" : 0, +}, + { "#url" : "https://deviantart.com/gdldev/banner", "#category": ("", "deviantart", "background"),