aboutsummaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/fansly.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/fansly.py')
-rw-r--r--gallery_dl/extractor/fansly.py26
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: