diff options
| author | 2020-12-30 18:41:48 -0500 | |
|---|---|---|
| committer | 2020-12-30 18:41:48 -0500 | |
| commit | 87a5aa088ce33a1196ff409b76a9ea8233bdc634 (patch) | |
| tree | 7e6155edcc5dd12e40b47ad814b3bc69e65c52fc /gallery_dl/extractor/booru.py | |
| parent | 8f7c87a2697113134c311aaeafd9c919555a2741 (diff) | |
New upstream version 1.16.1.upstream/1.16.1
Diffstat (limited to 'gallery_dl/extractor/booru.py')
| -rw-r--r-- | gallery_dl/extractor/booru.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/gallery_dl/extractor/booru.py b/gallery_dl/extractor/booru.py index 517df93..64cde80 100644 --- a/gallery_dl/extractor/booru.py +++ b/gallery_dl/extractor/booru.py @@ -13,6 +13,7 @@ from .. import text, util, exception from xml.etree import ElementTree import collections +import operator import re @@ -25,15 +26,25 @@ class BooruExtractor(Extractor): def items(self): self.login() - extended_tags = self.config("tags", False) data = self.metadata() + tags = self.config("tags", False) + for post in self.posts(): try: - url = self._prepare_post(post, extended_tags) - except KeyError: + url = self._file_url(post) + if url[0] == "/": + url = self.root + url + except (KeyError, TypeError): + self.log.debug("Unable to fetch download URL for post %s " + "(md5: %s)", post.get("id"), post.get("md5")) continue + + if tags: + self._extended_tags(post) + self._prepare(post) post.update(data) text.nameext_from_url(url, post) + yield Message.Directory, post yield Message.Url, url, post @@ -53,17 +64,14 @@ class BooruExtractor(Extractor): """Return an iterable with post objects""" return () - def _prepare_post(self, post, extended_tags=False): - url = post["file_url"] - if url[0] == "/": - url = self.root + url - if extended_tags: - self._fetch_extended_tags(post) + _file_url = operator.itemgetter("file_url") + + @staticmethod + def _prepare(post): post["date"] = text.parse_datetime( post["created_at"], "%a %b %d %H:%M:%S %z %Y") - return url - def _fetch_extended_tags(self, post, page=None): + def _extended_tags(self, post, page=None): if not page: url = "{}/index.php?page=post&s=view&id={}".format( self.root, post["id"]) |
