| 
									
										
										
										
											2016-10-06 10:45:57 +01:00
										 |  |  | # coding: utf-8 | 
					
						
							|  |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import re | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .common import InfoExtractor | 
					
						
							|  |  |  | from ..utils import ( | 
					
						
							|  |  |  |     extract_attributes, | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class NZZIE(InfoExtractor): | 
					
						
							|  |  |  |     _VALID_URL = r'https?://(?:www\.)?nzz\.ch/(?:[^/]+/)*[^/?#]+-ld\.(?P<id>\d+)' | 
					
						
							| 
									
										
										
										
											2018-11-20 20:50:40 +01:00
										 |  |  |     _TESTS = [{ | 
					
						
							| 
									
										
										
										
											2016-10-06 10:45:57 +01:00
										 |  |  |         'url': 'http://www.nzz.ch/zuerich/gymizyte/gymizyte-schreiben-schueler-heute-noch-diktate-ld.9153', | 
					
						
							|  |  |  |         'info_dict': { | 
					
						
							|  |  |  |             'id': '9153', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         'playlist_mincount': 6, | 
					
						
							| 
									
										
										
										
											2018-11-20 20:50:40 +01:00
										 |  |  |     }, { | 
					
						
							|  |  |  |         'url': 'https://www.nzz.ch/video/nzz-standpunkte/cvp-auf-der-suche-nach-dem-mass-der-mitte-ld.1368112', | 
					
						
							|  |  |  |         'info_dict': { | 
					
						
							|  |  |  |             'id': '1368112', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         'playlist_count': 1, | 
					
						
							|  |  |  |     }] | 
					
						
							| 
									
										
										
										
											2016-10-06 10:45:57 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							|  |  |  |         page_id = self._match_id(url) | 
					
						
							|  |  |  |         webpage = self._download_webpage(url, page_id) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         entries = [] | 
					
						
							| 
									
										
										
										
											2018-11-20 20:50:40 +01:00
										 |  |  |         for player_element in re.findall( | 
					
						
							|  |  |  |                 r'(<[^>]+class="kalturaPlayer[^"]*"[^>]*>)', webpage): | 
					
						
							| 
									
										
										
										
											2016-10-06 10:45:57 +01:00
										 |  |  |             player_params = extract_attributes(player_element) | 
					
						
							|  |  |  |             if player_params.get('data-type') not in ('kaltura_singleArticle',): | 
					
						
							|  |  |  |                 self.report_warning('Unsupported player type') | 
					
						
							|  |  |  |                 continue | 
					
						
							|  |  |  |             entry_id = player_params['data-id'] | 
					
						
							|  |  |  |             entries.append(self.url_result( | 
					
						
							|  |  |  |                 'kaltura:1750922:' + entry_id, 'Kaltura', entry_id)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return self.playlist_result(entries, page_id) |