[tfo] Improve geo restriction detection and use geo bypass mechanism

This commit is contained in:
Remita Amine 2017-02-21 17:51:40 +01:00
parent 86466a8b6f
commit 7345d6d465

View File

@ -8,10 +8,12 @@ from ..utils import (
HEADRequest, HEADRequest,
ExtractorError, ExtractorError,
int_or_none, int_or_none,
clean_html,
) )
class TFOIE(InfoExtractor): class TFOIE(InfoExtractor):
_GEO_COUNTRIES = ['CA']
_VALID_URL = r'https?://(?:www\.)?tfo\.org/(?:en|fr)/(?:[^/]+/){2}(?P<id>\d+)' _VALID_URL = r'https?://(?:www\.)?tfo\.org/(?:en|fr)/(?:[^/]+/){2}(?P<id>\d+)'
_TEST = { _TEST = {
'url': 'http://www.tfo.org/en/universe/tfo-247/100463871/video-game-hackathon', 'url': 'http://www.tfo.org/en/universe/tfo-247/100463871/video-game-hackathon',
@ -36,7 +38,9 @@ class TFOIE(InfoExtractor):
'X-tfo-session': self._get_cookies('http://www.tfo.org/')['tfo-session'].value, 'X-tfo-session': self._get_cookies('http://www.tfo.org/')['tfo-session'].value,
}) })
if infos.get('success') == 0: if infos.get('success') == 0:
raise ExtractorError('%s said: %s' % (self.IE_NAME, infos['msg']), expected=True) if infos.get('code') == 'ErrGeoBlocked':
self.raise_geo_restricted(countries=self._GEO_COUNTRIES)
raise ExtractorError('%s said: %s' % (self.IE_NAME, clean_html(infos['msg'])), expected=True)
video_data = infos['data'] video_data = infos['data']
return { return {