|
|
|
@ -662,6 +662,24 @@ class InfoExtractor(object):
|
|
|
|
|
else:
|
|
|
|
|
return res
|
|
|
|
|
|
|
|
|
|
def _get_netrc_login_info(self, netrc_machine=None):
|
|
|
|
|
username = None
|
|
|
|
|
password = None
|
|
|
|
|
netrc_machine = netrc_machine or self._NETRC_MACHINE
|
|
|
|
|
|
|
|
|
|
if self._downloader.params.get('usenetrc', False):
|
|
|
|
|
try:
|
|
|
|
|
info = netrc.netrc().authenticators(netrc_machine)
|
|
|
|
|
if info is not None:
|
|
|
|
|
username = info[0]
|
|
|
|
|
password = info[2]
|
|
|
|
|
else:
|
|
|
|
|
raise netrc.NetrcParseError('No authenticators for %s' % netrc_machine)
|
|
|
|
|
except (IOError, netrc.NetrcParseError) as err:
|
|
|
|
|
self._downloader.report_warning('parsing .netrc: %s' % error_to_compat_str(err))
|
|
|
|
|
|
|
|
|
|
return (username, password)
|
|
|
|
|
|
|
|
|
|
def _get_login_info(self):
|
|
|
|
|
"""
|
|
|
|
|
Get the login info as (username, password)
|
|
|
|
@ -679,16 +697,8 @@ class InfoExtractor(object):
|
|
|
|
|
if downloader_params.get('username') is not None:
|
|
|
|
|
username = downloader_params['username']
|
|
|
|
|
password = downloader_params['password']
|
|
|
|
|
elif downloader_params.get('usenetrc', False):
|
|
|
|
|
try:
|
|
|
|
|
info = netrc.netrc().authenticators(self._NETRC_MACHINE)
|
|
|
|
|
if info is not None:
|
|
|
|
|
username = info[0]
|
|
|
|
|
password = info[2]
|
|
|
|
|
else:
|
|
|
|
|
raise netrc.NetrcParseError('No authenticators for %s' % self._NETRC_MACHINE)
|
|
|
|
|
except (IOError, netrc.NetrcParseError) as err:
|
|
|
|
|
self._downloader.report_warning('parsing .netrc: %s' % error_to_compat_str(err))
|
|
|
|
|
else:
|
|
|
|
|
username, password = self._get_netrc_login_info()
|
|
|
|
|
|
|
|
|
|
return (username, password)
|
|
|
|
|
|
|
|
|
|