[patreon] support '/profile/creators' URLs

This commit is contained in:
Mike Fährmann
2025-02-09 15:52:54 +01:00
parent 3282025749
commit 6c2b6d50cc
2 changed files with 13 additions and 2 deletions

View File

@@ -324,7 +324,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 +346,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")

View File

@@ -63,6 +63,16 @@ __tests__ = (
"#class" : patreon.PatreonCreatorExtractor,
},
{
"#url" : "https://www.patreon.com/profile/creators?u=2931440",
"#class" : patreon.PatreonCreatorExtractor,
},
{
"#url" : "https://www.patreon.com/profile/creators?c=369707",
"#class" : patreon.PatreonCreatorExtractor,
},
{
"#url" : "https://www.patreon.com/id:369707",
"#class" : patreon.PatreonCreatorExtractor,