diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-12-01 23:21:19 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-12-01 23:23:59 +0530 |
commit | 2c4aaaddc99dfb57cb3a5395e4d2fff2f4b819a4 (patch) | |
tree | bc28bc6dc68ff84215d4a869903280d959febbb1 /yt_dlp/extractor/common.py | |
parent | 5f7cb91ae9b2855376aca5b60ba1ac10ef694b4d (diff) | |
download | hypervideo-pre-2c4aaaddc99dfb57cb3a5395e4d2fff2f4b819a4.tar.lz hypervideo-pre-2c4aaaddc99dfb57cb3a5395e4d2fff2f4b819a4.tar.xz hypervideo-pre-2c4aaaddc99dfb57cb3a5395e4d2fff2f4b819a4.zip |
[lazy_extractors] Fix for search IEs
Closes #1851
Diffstat (limited to 'yt_dlp/extractor/common.py')
-rw-r--r-- | yt_dlp/extractor/common.py | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py index 37e69d409..597db63d1 100644 --- a/yt_dlp/extractor/common.py +++ b/yt_dlp/extractor/common.py @@ -466,6 +466,8 @@ class InfoExtractor(object): # we have cached the regexp for *this* class, whereas getattr would also # match the superclass if '_VALID_URL_RE' not in cls.__dict__: + if '_VALID_URL' not in cls.__dict__: + cls._VALID_URL = cls._make_valid_url() cls._VALID_URL_RE = re.compile(cls._VALID_URL) return cls._VALID_URL_RE.match(url) @@ -3658,17 +3660,8 @@ class SearchInfoExtractor(InfoExtractor): def _make_valid_url(cls): return r'%s(?P<prefix>|[1-9][0-9]*|all):(?P<query>[\s\S]+)' % cls._SEARCH_KEY - @classmethod - def suitable(cls, url): - return re.match(cls._make_valid_url(), url) is not None - def _real_extract(self, query): - mobj = re.match(self._make_valid_url(), query) - if mobj is None: - raise ExtractorError('Invalid search query "%s"' % query) - - prefix = mobj.group('prefix') - query = mobj.group('query') + prefix, query = self._match_valid_url(query).group('prefix', 'query') if prefix == '': return self._get_n_results(query, 1) elif prefix == 'all': |