[patreon] do not match '/messages' URLs as creators (#7187)
This commit is contained in:
@@ -329,10 +329,11 @@ class PatreonCreatorExtractor(PatreonExtractor):
|
||||
"""Extractor for a creator's works"""
|
||||
subcategory = "creator"
|
||||
pattern = (r"(?:https?://)?(?:www\.)?patreon\.com"
|
||||
r"/(?!(?:home|join|posts|login|signup)(?:$|[/?#]))"
|
||||
r"/(?!(?:home|create|login|signup|search|posts|messages)"
|
||||
r"(?:$|[/?#]))"
|
||||
r"(?:profile/creators|(?:c/)?([^/?#]+)(?:/posts)?)"
|
||||
r"/?(?:\?([^#]+))?")
|
||||
example = "https://www.patreon.com/USER"
|
||||
example = "https://www.patreon.com/c/USER"
|
||||
|
||||
def posts(self):
|
||||
creator, query = self.groups
|
||||
@@ -370,7 +371,7 @@ class PatreonCreatorExtractor(PatreonExtractor):
|
||||
data = None
|
||||
data = self._extract_bootstrap(page)
|
||||
return data["campaign"]["data"]["id"]
|
||||
except (KeyError, ValueError) as exc:
|
||||
except Exception as exc:
|
||||
if data:
|
||||
self.log.debug(data)
|
||||
raise exception.StopExtraction(
|
||||
|
||||
@@ -79,6 +79,30 @@ __tests__ = (
|
||||
"#class" : patreon.PatreonCreatorExtractor,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.patreon.com/create",
|
||||
"#class" : patreon.PatreonCreatorExtractor,
|
||||
"#fail" : True,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.patreon.com/login",
|
||||
"#class" : patreon.PatreonCreatorExtractor,
|
||||
"#fail" : True,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.patreon.com/search?q=foobar",
|
||||
"#class" : patreon.PatreonCreatorExtractor,
|
||||
"#fail" : True,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.patreon.com/messages/?mode=user&tab=chats",
|
||||
"#class" : patreon.PatreonCreatorExtractor,
|
||||
"#fail" : True,
|
||||
},
|
||||
|
||||
{
|
||||
"#url" : "https://www.patreon.com/home",
|
||||
"#class" : patreon.PatreonUserExtractor,
|
||||
|
||||
Reference in New Issue
Block a user