mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-11-04 00:25:15 +00:00 
			
		
		
		
	[theplatform] use _get_netrc_login_info and fix session expiration check(#10345)
This commit is contained in:
		@@ -218,15 +218,16 @@ class ThePlatformIE(ThePlatformBaseIE):
 | 
			
		||||
        requestor_info = self._downloader.cache.load('mvpd', requestor_id) or {}
 | 
			
		||||
        authn_token = requestor_info.get('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
 | 
			
		||||
                requestor_info = {}
 | 
			
		||||
        if not authn_token:
 | 
			
		||||
            # TODO add support for other TV Providers
 | 
			
		||||
            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={}):
 | 
			
		||||
                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_redirect_page, 'Downloading Provider Login Page')
 | 
			
		||||
            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')
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user