Browse Source

[theplatform] use _get_netrc_login_info and fix session expiration check(#10345)

totalwebcasting
Remita Amine 8 years ago
parent
commit
9771b1f901
1 changed files with 8 additions and 7 deletions
  1. +8
    -7
      youtube_dl/extractor/theplatform.py

+ 8
- 7
youtube_dl/extractor/theplatform.py View File

@ -218,15 +218,16 @@ class ThePlatformIE(ThePlatformBaseIE):
requestor_info = self._downloader.cache.load('mvpd', requestor_id) or {} requestor_info = self._downloader.cache.load('mvpd', requestor_id) or {}
authn_token = requestor_info.get('authn_token') authn_token = requestor_info.get('authn_token')
if authn_token: if authn_token:
token_expires = unified_timestamp(xml_text(authn_token, 'simpleTokenExpires').replace('_GMT', ''))
if token_expires and token_expires >= time.time():
token_expires = unified_timestamp(re.sub(r'[_ ]GMT', '', xml_text(authn_token, 'simpleTokenExpires')))
if token_expires and token_expires <= int(time.time()):
authn_token = None authn_token = None
requestor_info = {}
if not authn_token: if not authn_token:
# TODO add support for other TV Providers # TODO add support for other TV Providers
mso_id = 'DTV' mso_id = 'DTV'
login_info = netrc.netrc().authenticators(mso_id)
if not login_info:
return None
username, password = self._get_netrc_login_info(mso_id)
if not username or not password:
return ''
def post_form(form_page, note, data={}): def post_form(form_page, note, data={}):
post_url = self._html_search_regex(r'<form[^>]+action=(["\'])(?P<url>.+?)\1', form_page, 'post url', group='url') post_url = self._html_search_regex(r'<form[^>]+action=(["\'])(?P<url>.+?)\1', form_page, 'post url', group='url')
@ -248,8 +249,8 @@ class ThePlatformIE(ThePlatformBaseIE):
provider_login_page = post_form( provider_login_page = post_form(
provider_redirect_page, 'Downloading Provider Login Page') provider_redirect_page, 'Downloading Provider Login Page')
mvpd_confirm_page = post_form(provider_login_page, 'Logging in', { mvpd_confirm_page = post_form(provider_login_page, 'Logging in', {
'username': login_info[0],
'password': login_info[2],
'username': username,
'password': password,
}) })
post_form(mvpd_confirm_page, 'Confirming Login') post_form(mvpd_confirm_page, 'Confirming Login')


Loading…
Cancel
Save