[nhl:news] Add extractor (Closes #4805)
This commit is contained in:
		
							parent
							
								
									2c58674e0e
								
							
						
					
					
						commit
						e4c17d7274
					
				@ -294,7 +294,11 @@ from .nextmedia import (
 | 
				
			|||||||
)
 | 
					)
 | 
				
			||||||
from .nfb import NFBIE
 | 
					from .nfb import NFBIE
 | 
				
			||||||
from .nfl import NFLIE
 | 
					from .nfl import NFLIE
 | 
				
			||||||
from .nhl import NHLIE, NHLVideocenterIE
 | 
					from .nhl import (
 | 
				
			||||||
 | 
					    NHLIE,
 | 
				
			||||||
 | 
					    NHLNewsIE,
 | 
				
			||||||
 | 
					    NHLVideocenterIE,
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
from .niconico import NiconicoIE, NiconicoPlaylistIE
 | 
					from .niconico import NiconicoIE, NiconicoPlaylistIE
 | 
				
			||||||
from .ninegag import NineGagIE
 | 
					from .ninegag import NineGagIE
 | 
				
			||||||
from .noco import NocoIE
 | 
					from .noco import NocoIE
 | 
				
			||||||
 | 
				
			|||||||
@ -20,6 +20,12 @@ class NHLBaseInfoExtractor(InfoExtractor):
 | 
				
			|||||||
    def _fix_json(json_string):
 | 
					    def _fix_json(json_string):
 | 
				
			||||||
        return json_string.replace('\\\'', '\'')
 | 
					        return json_string.replace('\\\'', '\'')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _real_extract_video(self, video_id):
 | 
				
			||||||
 | 
					        json_url = 'http://video.nhl.com/videocenter/servlets/playlist?ids=%s&format=json' % video_id
 | 
				
			||||||
 | 
					        data = self._download_json(
 | 
				
			||||||
 | 
					            json_url, video_id, transform_source=self._fix_json)
 | 
				
			||||||
 | 
					        return self._extract_video(data[0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _extract_video(self, info):
 | 
					    def _extract_video(self, info):
 | 
				
			||||||
        video_id = info['id']
 | 
					        video_id = info['id']
 | 
				
			||||||
        self.report_extraction(video_id)
 | 
					        self.report_extraction(video_id)
 | 
				
			||||||
@ -98,12 +104,35 @@ class NHLIE(NHLBaseInfoExtractor):
 | 
				
			|||||||
    }]
 | 
					    }]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _real_extract(self, url):
 | 
					    def _real_extract(self, url):
 | 
				
			||||||
        mobj = re.match(self._VALID_URL, url)
 | 
					        video_id = self._match_id(url)
 | 
				
			||||||
        video_id = mobj.group('id')
 | 
					        return self._real_extract_video(video_id)
 | 
				
			||||||
        json_url = 'http://video.nhl.com/videocenter/servlets/playlist?ids=%s&format=json' % video_id
 | 
					
 | 
				
			||||||
        data = self._download_json(
 | 
					
 | 
				
			||||||
            json_url, video_id, transform_source=self._fix_json)
 | 
					class NHLNewsIE(NHLBaseInfoExtractor):
 | 
				
			||||||
        return self._extract_video(data[0])
 | 
					    IE_NAME = 'nhl.com:news'
 | 
				
			||||||
 | 
					    IE_DESC = 'NHL news'
 | 
				
			||||||
 | 
					    _VALID_URL = r'https?://(?:www\.)?nhl\.com/ice/news\.html?(?:\?(?:.*?[?&])?)id=(?P<id>[-0-9a-zA-Z]+)'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    _TEST = {
 | 
				
			||||||
 | 
					        'url': 'http://www.nhl.com/ice/news.htm?id=750727',
 | 
				
			||||||
 | 
					        'md5': '4b3d1262e177687a3009937bd9ec0be8',
 | 
				
			||||||
 | 
					        'info_dict': {
 | 
				
			||||||
 | 
					            'id': '736722',
 | 
				
			||||||
 | 
					            'ext': 'mp4',
 | 
				
			||||||
 | 
					            'title': 'Cal Clutterbuck has been fined $2,000',
 | 
				
			||||||
 | 
					            'description': 'md5:45fe547d30edab88b23e0dd0ab1ed9e6',
 | 
				
			||||||
 | 
					            'duration': 37,
 | 
				
			||||||
 | 
					            'upload_date': '20150128',
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def _real_extract(self, url):
 | 
				
			||||||
 | 
					        news_id = self._match_id(url)
 | 
				
			||||||
 | 
					        webpage = self._download_webpage(url, news_id)
 | 
				
			||||||
 | 
					        video_id = self._search_regex(
 | 
				
			||||||
 | 
					            [r'pVid(\d+)', r"nlid\s*:\s*'(\d+)'"],
 | 
				
			||||||
 | 
					            webpage, 'video id')
 | 
				
			||||||
 | 
					        return self._real_extract_video(video_id)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class NHLVideocenterIE(NHLBaseInfoExtractor):
 | 
					class NHLVideocenterIE(NHLBaseInfoExtractor):
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user