summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/mastodon.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2020-06-29 00:33:22 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2020-06-29 00:33:22 -0400
commit02dd2886783cd303cff6890a741152d013bb00ce (patch)
treee5d4a805888147de8efe514a3c55e303230a508b /gallery_dl/extractor/mastodon.py
parent8c911e3d62a430f5630c13d51b47201fa8ff3cd1 (diff)
New upstream version 1.14.2.upstream/1.14.2
Diffstat (limited to 'gallery_dl/extractor/mastodon.py')
-rw-r--r--gallery_dl/extractor/mastodon.py31
1 files changed, 17 insertions, 14 deletions
diff --git a/gallery_dl/extractor/mastodon.py b/gallery_dl/extractor/mastodon.py
index 002c8f7..fa1fecc 100644
--- a/gallery_dl/extractor/mastodon.py
+++ b/gallery_dl/extractor/mastodon.py
@@ -27,22 +27,25 @@ class MastodonExtractor(Extractor):
Extractor.__init__(self, match)
self.api = MastodonAPI(self)
- def config(self, key, default=None, *, sentinel=util.SENTINEL):
- value = Extractor.config(self, key, sentinel)
- return value if value is not sentinel else config.interpolate(
- ("extractor", "mastodon", self.instance, self.subcategory),
- key, default,
+ def config(self, key, default=None):
+ return config.interpolate_common(
+ ("extractor",), (
+ (self.category, self.subcategory),
+ (self.basecategory, self.instance, self.subcategory),
+ ), key, default,
)
def items(self):
yield Message.Version, 1
for status in self.statuses():
- attachments = self.prepare(status)
- yield Message.Directory, status
- for media in attachments:
- status["media"] = media
- url = media["url"]
- yield Message.Url, url, text.nameext_from_url(url, status)
+ attachments = status["media_attachments"]
+ if attachments:
+ self.prepare(status)
+ yield Message.Directory, status
+ for media in attachments:
+ status["media"] = media
+ url = media["url"]
+ yield Message.Url, url, text.nameext_from_url(url, status)
def statuses(self):
"""Return an iterable containing all relevant Status-objects"""
@@ -50,11 +53,11 @@ class MastodonExtractor(Extractor):
def prepare(self, status):
"""Prepare a status object"""
+ del status["media_attachments"]
status["instance"] = self.instance
status["tags"] = [tag["name"] for tag in status["tags"]]
- attachments = status["media_attachments"]
- del status["media_attachments"]
- return attachments
+ status["date"] = text.parse_datetime(
+ status["created_at"][:19], "%Y-%m-%dT%H:%M:%S")
class MastodonUserExtractor(MastodonExtractor):