diff options
Diffstat (limited to 'gallery_dl/extractor/fansly.py')
| -rw-r--r-- | gallery_dl/extractor/fansly.py | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/gallery_dl/extractor/fansly.py b/gallery_dl/extractor/fansly.py index 7138599..ba60b15 100644 --- a/gallery_dl/extractor/fansly.py +++ b/gallery_dl/extractor/fansly.py @@ -35,9 +35,9 @@ class FanslyExtractor(Extractor): for post in self.posts(): files = self._extract_files(post) post["count"] = len(files) - post["date"] = text.parse_timestamp(post["createdAt"]) + post["date"] = self.parse_timestamp(post["createdAt"]) - yield Message.Directory, post + yield Message.Directory, "", post for post["num"], file in enumerate(files, 1): post.update(file) url = file["url"] @@ -61,7 +61,8 @@ class FanslyExtractor(Extractor): yield from self.posts_wall(account, wall) def _extract_files(self, post): - files = [] + if "attachments" not in post: + return () if "_extra" in post: extra = post.pop("_extra", ()) @@ -75,11 +76,12 @@ class FanslyExtractor(Extractor): if mid in media ) + files = [] for attachment in post.pop("attachments"): try: self._extract_attachment(files, post, attachment) except Exception as exc: - self.log.debug("", exc_info=exc) + self.log.traceback(exc) self.log.error( "%s/%s, Failed to extract media (%s: %s)", post["id"], attachment.get("id"), @@ -117,8 +119,8 @@ class FanslyExtractor(Extractor): file = { **variant, "format": variant["type"], - "date": text.parse_timestamp(media["createdAt"]), - "date_updated": text.parse_timestamp(media["updatedAt"]), + "date": self.parse_timestamp(media["createdAt"]), + "date_updated": self.parse_timestamp(media["updatedAt"]), } if "metadata" in location: @@ -331,12 +333,20 @@ class FanslyAPI(): posts = response["posts"] for post in posts: - post["account"] = accounts[post.pop("accountId")] + try: + post["account"] = accounts[post.pop("accountId")] + except KeyError: + pass extra = None attachments = [] for attachment in post["attachments"]: - cid = attachment["contentId"] + try: + cid = attachment["contentId"] + except KeyError: + attachments.append(attachment) + continue + if cid in media: attachments.append(media[cid]) elif cid in bundles: |
