Browse Source
[extractor/common] Support multiple properties in _og_search_property
master
Sergey M․
8 years ago
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with
10 additions and
2 deletions
-
test/test_InfoExtractor.py
-
youtube_dl/extractor/common.py
|
|
@ -48,6 +48,9 @@ class TestInfoExtractor(unittest.TestCase): |
|
|
|
self.assertEqual(ie._og_search_property('foobar', html), 'Foo') |
|
|
|
self.assertEqual(ie._og_search_property('test1', html), 'foo > < bar') |
|
|
|
self.assertEqual(ie._og_search_property('test2', html), 'foo >//< bar') |
|
|
|
self.assertEqual(ie._og_search_property(('test0', 'test1'), html), 'foo > < bar') |
|
|
|
self.assertRaises(RegexNotFoundError, ie._og_search_property, 'test0', html, None, fatal=True) |
|
|
|
self.assertRaises(RegexNotFoundError, ie._og_search_property, ('test0', 'test00'), html, None, fatal=True) |
|
|
|
|
|
|
|
def test_html_search_meta(self): |
|
|
|
ie = self.ie |
|
|
|
|
|
@ -727,9 +727,14 @@ class InfoExtractor(object): |
|
|
|
[^>]+?content=(["\'])(?P<content>.*?)\2''' % re.escape(prop) |
|
|
|
|
|
|
|
def _og_search_property(self, prop, html, name=None, **kargs): |
|
|
|
if not isinstance(prop, (list, tuple)): |
|
|
|
prop = [prop] |
|
|
|
if name is None: |
|
|
|
name = 'OpenGraph %s' % prop |
|
|
|
escaped = self._search_regex(self._og_regexes(prop), html, name, flags=re.DOTALL, **kargs) |
|
|
|
name = 'OpenGraph %s' % prop[0] |
|
|
|
og_regexes = [] |
|
|
|
for p in prop: |
|
|
|
og_regexes.extend(self._og_regexes(p)) |
|
|
|
escaped = self._search_regex(og_regexes, html, name, flags=re.DOTALL, **kargs) |
|
|
|
if escaped is None: |
|
|
|
return None |
|
|
|
return unescapeHTML(escaped) |
|
|
|