diff --git a/gallery_dl/extractor/patreon.py b/gallery_dl/extractor/patreon.py index 8e61bf4f..0b64ea3b 100644 --- a/gallery_dl/extractor/patreon.py +++ b/gallery_dl/extractor/patreon.py @@ -311,7 +311,7 @@ class PatreonCreatorExtractor(PatreonExtractor): subcategory = "creator" pattern = (r"(?:https?://)?(?:www\.)?patreon\.com" r"/(?!(?:home|join|posts|login|signup)(?:$|[/?#]))" - r"([^/?#]+)(?:/posts)?/?(?:\?([^#]+))?") + r"(?:c/)?([^/?#]+)(?:/posts)?/?(?:\?([^#]+))?") example = "https://www.patreon.com/USER" def posts(self): @@ -341,9 +341,9 @@ class PatreonCreatorExtractor(PatreonExtractor): user_id = query.get("u") if user_id: - url = "{}/user/posts?u={}".format(self.root, user_id) + url = "{}/user?u={}".format(self.root, user_id) else: - url = "{}/{}/posts".format(self.root, creator) + url = "{}/{}".format(self.root, creator) page = self.request(url, notfound="creator").text try: diff --git a/test/results/patreon.py b/test/results/patreon.py index b8fc1bb2..f8cdaf10 100644 --- a/test/results/patreon.py +++ b/test/results/patreon.py @@ -43,6 +43,11 @@ __tests__ = ( "#exception": exception.NotFoundError, }, +{ + "#url" : "https://www.patreon.com/c/koveliana", + "#class" : patreon.PatreonCreatorExtractor, +}, + { "#url" : "https://www.patreon.com/user?u=2931440", "#class" : patreon.PatreonCreatorExtractor,