[extractor/generic] Support relative URIs in _parse_xspf

<location> can have relative URIs, not just absolute.
This commit is contained in:
Ricardo Constantino 2018-03-07 21:31:53 +00:00 committed by Sergey M․
parent 178ee88319
commit 96b8b9abae
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D
4 changed files with 82 additions and 4 deletions

View file

@ -694,6 +694,48 @@ jwplayer("mediaplayer").setup({"abouttext":"Visit Indie DB","aboutlink":"http:\/
self.ie._sort_formats(formats)
expect_value(self, formats, expected_formats, None)
def test_parse_xspf(self):
_TEST_CASES = [
(
'foo_xspf',
'https://example.org/src/',
[{
'description': 'Visit http://bigbrother404.bandcamp.com',
'duration': 202.416,
'formats': [{'url': 'https://example.org/src/cd1/track%201.mp3'}],
'id': 'foo_xspf',
'title': 'Pandemonium'
},
{
'description': 'Visit http://bigbrother404.bandcamp.com',
'duration': 255.857,
'formats': [{'url': 'https://example.org/%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%80%80%EF%BC%92.mp3'}],
'id': 'foo_xspf',
'title': 'Final Cartridge (Nichico Twelve Remix)'
},
{
'description': 'Visit http://bigbrother404.bandcamp.com',
'duration': 287.915,
'formats': [
{'url': 'https://example.org/src/track3.mp3'},
{'url': 'https://example.com/track3.mp3'}
],
'id': 'foo_xspf',
'title': 'Rebuilding Nightingale'
}]
),
]
for xspf_file, xspf_base_url, expected_entries in _TEST_CASES:
with io.open('./test/testdata/xspf/%s.xspf' % xspf_file,
mode='r', encoding='utf-8') as f:
entries = self.ie._parse_xspf(
compat_etree_fromstring(f.read().encode('utf-8')),
xspf_file, xspf_base_url)
expect_value(self, entries, expected_entries, None)
for i in range(len(entries)):
expect_dict(self, entries[i], expected_entries[i])
if __name__ == '__main__':
unittest.main()

34
test/testdata/xspf/foo_xspf.xspf vendored Normal file
View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<playlist version="1" xmlns="http://xspf.org/ns/0/">
<date>2018-03-09T18:01:43Z</date>
<trackList>
<track>
<location>cd1/track%201.mp3</location>
<title>Pandemonium</title>
<creator>Foilverb</creator>
<annotation>Visit http://bigbrother404.bandcamp.com</annotation>
<album>Pandemonium EP</album>
<trackNum>1</trackNum>
<duration>202416</duration>
</track>
<track>
<location>../%E3%83%88%E3%83%A9%E3%83%83%E3%82%AF%E3%80%80%EF%BC%92.mp3</location>
<title>Final Cartridge (Nichico Twelve Remix)</title>
<annotation>Visit http://bigbrother404.bandcamp.com</annotation>
<creator>Foilverb</creator>
<album>Pandemonium EP</album>
<trackNum>2</trackNum>
<duration>255857</duration>
</track>
<track>
<location>track3.mp3</location>
<location>https://example.com/track3.mp3</location>
<title>Rebuilding Nightingale</title>
<annotation>Visit http://bigbrother404.bandcamp.com</annotation>
<creator>Foilverb</creator>
<album>Pandemonium EP</album>
<trackNum>3</trackNum>
<duration>287915</duration>
</track>
</trackList>
</playlist>