From 7876a03ece696ad235da53102d2972807e0cade8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20F=C3=A4hrmann?= Date: Mon, 31 Aug 2020 21:58:20 +0200 Subject: [PATCH] [tumblr] create directories for each post (fixes #965) This changes the identifiers for directory format string fields. Everything blog related is now inside a 'blog' object and not at the "base level" anymore. E.g. '{name}' for directories is now '{blog[name]}' (or '{blog_name}', since that is also available) --- gallery_dl/extractor/tumblr.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/gallery_dl/extractor/tumblr.py b/gallery_dl/extractor/tumblr.py index 4d518513..d681ca6a 100644 --- a/gallery_dl/extractor/tumblr.py +++ b/gallery_dl/extractor/tumblr.py @@ -41,7 +41,7 @@ BASE_PATTERN = ( class TumblrExtractor(Extractor): """Base class for tumblr extractors""" category = "tumblr" - directory_fmt = ("{category}", "{name}") + directory_fmt = ("{category}", "{blog_name}") filename_fmt = "{category}_{blog_name}_{id}_{num:>02}.{extension}" archive_fmt = "{id}_{num}" cookiedomain = None @@ -69,7 +69,6 @@ class TumblrExtractor(Extractor): def items(self): blog = None - yield Message.Version, 1 for post in self.posts(): if self.date_min > post["timestamp"]: @@ -79,10 +78,10 @@ class TumblrExtractor(Extractor): if not blog: blog = self.api.info(self.blog) blog["uuid"] = self.blog - yield Message.Directory, blog.copy() if self.avatar: url = self.api.avatar(self.blog) + yield Message.Directory, {"blog": blog} yield self._prepare_avatar(url, post.copy(), blog) reblog = "reblogged_from_id" in post @@ -90,12 +89,12 @@ class TumblrExtractor(Extractor): continue post["reblogged"] = reblog - post["blog"] = blog - post["date"] = text.parse_timestamp(post["timestamp"]) - post["num"] = 0 - if "trail" in post: del post["trail"] + post["blog"] = blog + post["date"] = text.parse_timestamp(post["timestamp"]) + yield Message.Directory, post + post["num"] = 0 if "photos" in post: # type "photo" or "link" photos = post["photos"] @@ -316,7 +315,7 @@ class TumblrTagExtractor(TumblrExtractor): class TumblrLikesExtractor(TumblrExtractor): """Extractor for images from a tumblr-user's liked posts""" subcategory = "likes" - directory_fmt = ("{category}", "{name}", "likes") + directory_fmt = ("{category}", "{blog_name}", "likes") archive_fmt = "f_{blog[name]}_{id}_{num}" pattern = BASE_PATTERN + r"/likes" test = ("http://mikf123.tumblr.com/likes", {