aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/extractor/patreon.py
diff options
context:
space:
mode:
authorbashonly <88596187+bashonly@users.noreply.github.com>2024-10-12 23:23:03 +0000
committerGitHub <noreply@github.com>2024-10-12 23:23:03 +0000
commitbabb70960595e2146f06f81affc29c7e713e34e2 (patch)
tree069fb5f623c537c656b0a0c145513062d513b482 /yt_dlp/extractor/patreon.py
parent9d43dcb2c5c38f443f84dfc126cd32720e1a1ad6 (diff)
[ie/patreon:campaign] Stricter URL matching (#11235)
Redefinition of suitable() is no longer necessary Closes #11233 Authored by: bashonly
Diffstat (limited to 'yt_dlp/extractor/patreon.py')
-rw-r--r--yt_dlp/extractor/patreon.py13
1 files changed, 7 insertions, 6 deletions
diff --git a/yt_dlp/extractor/patreon.py b/yt_dlp/extractor/patreon.py
index f5cb2a5d6..4d668cd37 100644
--- a/yt_dlp/extractor/patreon.py
+++ b/yt_dlp/extractor/patreon.py
@@ -55,6 +55,7 @@ class PatreonBaseIE(InfoExtractor):
class PatreonIE(PatreonBaseIE):
+ IE_NAME = 'patreon'
_VALID_URL = r'https?://(?:www\.)?patreon\.com/(?:creation\?hid=|posts/(?:[\w-]+-)?)(?P<id>\d+)'
_TESTS = [{
'url': 'http://www.patreon.com/creation?hid=743933',
@@ -433,8 +434,12 @@ class PatreonIE(PatreonBaseIE):
class PatreonCampaignIE(PatreonBaseIE):
-
- _VALID_URL = r'https?://(?:www\.)?patreon\.com/(?!rss)(?:(?:m|api/campaigns)/(?P<campaign_id>\d+)|(?P<vanity>[-\w]+))'
+ IE_NAME = 'patreon:campaign'
+ _VALID_URL = r'''(?x)
+ https?://(?:www\.)?patreon\.com/(?:
+ (?:m|api/campaigns)/(?P<campaign_id>\d+)|
+ (?P<vanity>(?!creation[?/]|posts/|rss[?/])[\w-]+)
+ )(?:/posts)?/?(?:$|[?#])'''
_TESTS = [{
'url': 'https://www.patreon.com/dissonancepod/',
'info_dict': {
@@ -496,10 +501,6 @@ class PatreonCampaignIE(PatreonBaseIE):
'only_matching': True,
}]
- @classmethod
- def suitable(cls, url):
- return False if PatreonIE.suitable(url) else super().suitable(url)
-
def _entries(self, campaign_id):
cursor = None
params = {