[azmedien:showplaylist] Improve (closes #12160)

This commit is contained in:
Sergey M․ 2017-02-28 23:37:33 +07:00
parent 948519b35d
commit 43b38424a9
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
1 changed files with 8 additions and 16 deletions

View File

@ -1,3 +1,4 @@
# coding: utf-8
from __future__ import unicode_literals from __future__ import unicode_literals
import re import re
@ -174,11 +175,10 @@ class AZMedienPlaylistIE(AZMedienBaseIE):
class AZMedienShowPlaylistIE(AZMedienBaseIE): class AZMedienShowPlaylistIE(AZMedienBaseIE):
IE_DESC = 'AZ Medien Show playlists' IE_DESC = 'AZ Medien show playlists'
_VALID_URL = r'''(?x) _VALID_URL = r'''(?x)
https?:// https?://
(?:www\.)? (?:www\.)?
(?P<id>
(?: (?:
telezueri\.ch| telezueri\.ch|
telebaern\.tv| telebaern\.tv|
@ -187,22 +187,18 @@ class AZMedienShowPlaylistIE(AZMedienBaseIE):
(?: (?:
all-episodes| all-episodes|
alle-episoden alle-episoden
) )/
/[^/]+ (?P<id>[^/?#&]+)
)
''' '''
_TEST = { _TEST = {
'url': 'http://www.telezueri.ch/all-episodes/astrotalk', 'url': 'http://www.telezueri.ch/all-episodes/astrotalk',
'info_dict': { 'info_dict': {
'id': 'telezueri.ch/all-episodes/astrotalk', 'id': 'astrotalk',
'title': 'TeleZüri: AstroTalk - alle episoden', 'title': 'TeleZüri: AstroTalk - alle episoden',
'description': 'md5:4c0f7e7d741d906004266e295ceb4a26', 'description': 'md5:4c0f7e7d741d906004266e295ceb4a26',
}, },
'playlist_mincount': 13, 'playlist_mincount': 13,
'params': {
'skip_download': True,
}
} }
def _real_extract(self, url): def _real_extract(self, url):
@ -211,11 +207,7 @@ class AZMedienShowPlaylistIE(AZMedienBaseIE):
episodes = get_element_by_class('search-mobile-box', webpage) episodes = get_element_by_class('search-mobile-box', webpage)
entries = [self.url_result( entries = [self.url_result(
urljoin(url, m.group('url'))) for m in re.finditer( urljoin(url, m.group('url'))) for m in re.finditer(
r'<a[^>]+href=(["\'])(?P<url>.+?)\1', episodes)] r'<a[^>]+href=(["\'])(?P<url>(?:(?!\1).)+)\1', episodes)]
title = self._og_search_title(webpage) title = self._og_search_title(webpage, fatal=False)
description = self._og_search_description(webpage) description = self._og_search_description(webpage)
return self.playlist_result( return self.playlist_result(entries, playlist_id, title, description)
entries,
playlist_id=playlist_id,
playlist_title=title,
playlist_description=description)