summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/patreon.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2025-03-01 19:51:39 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2025-03-01 19:51:39 -0500
commit889c7b8caec8fc0b9c7a583ed1d9cfa43518fc42 (patch)
treecff4a7de7032843e4efe521d92dfce485ae944f1 /gallery_dl/extractor/patreon.py
parenta26df18796ff4e506b16bf32fcec9336233b9e2e (diff)
New upstream version 1.29.0.upstream/1.29.0
Diffstat (limited to 'gallery_dl/extractor/patreon.py')
-rw-r--r--gallery_dl/extractor/patreon.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/gallery_dl/extractor/patreon.py b/gallery_dl/extractor/patreon.py
index 866e93a..f5a33d5 100644
--- a/gallery_dl/extractor/patreon.py
+++ b/gallery_dl/extractor/patreon.py
@@ -169,6 +169,12 @@ class PatreonExtractor(Extractor):
attr["date"] = text.parse_datetime(
attr["published_at"], "%Y-%m-%dT%H:%M:%S.%f%z")
+ try:
+ attr["campaign"] = (included["campaign"][
+ relationships["campaign"]["data"]["id"]])
+ except Exception:
+ attr["campaign"] = None
+
tags = relationships.get("user_defined_tags")
attr["tags"] = [
tag["id"].replace("user_defined;", "")
@@ -324,7 +330,8 @@ class PatreonCreatorExtractor(PatreonExtractor):
subcategory = "creator"
pattern = (r"(?:https?://)?(?:www\.)?patreon\.com"
r"/(?!(?:home|join|posts|login|signup)(?:$|[/?#]))"
- r"(?:c/)?([^/?#]+)(?:/posts)?/?(?:\?([^#]+))?")
+ r"(?:profile/creators|(?:c/)?([^/?#]+)(?:/posts)?)"
+ r"/?(?:\?([^#]+))?")
example = "https://www.patreon.com/USER"
def posts(self):
@@ -345,7 +352,7 @@ class PatreonCreatorExtractor(PatreonExtractor):
return self._pagination(url)
def _get_campaign_id(self, creator, query):
- if creator.startswith("id:"):
+ if creator and creator.startswith("id:"):
return creator[3:]
campaign_id = query.get("c") or query.get("campaign_id")