mirror of
https://github.com/soimort/you-get.git
synced 2025-02-11 20:52:31 +03:00
[common] add proxy auth handler, fix #1539
This commit is contained in:
parent
8e150e6989
commit
9857e5c79c
@ -1080,11 +1080,25 @@ def parse_host(host):
|
|||||||
return (hostname, port)
|
return (hostname, port)
|
||||||
|
|
||||||
def set_proxy(proxy):
|
def set_proxy(proxy):
|
||||||
proxy_handler = request.ProxyHandler({
|
cred = match1(proxy, r'(.*)@')
|
||||||
'http': '%s:%s' % proxy,
|
if cred: # Proxy with authentication
|
||||||
'https': '%s:%s' % proxy,
|
user, passwd = match1(cred, r'(.*):'), match1(cred, r':(.*)')
|
||||||
})
|
proxy_url = match1(proxy, r'@(.*)')
|
||||||
|
logging.info("use proxy: %s" % proxy_url)
|
||||||
|
|
||||||
|
pass_mgr = request. HTTPPasswordMgrWithDefaultRealm()
|
||||||
|
pass_mgr.add_password(None, proxy_url, user, passwd)
|
||||||
|
proxy_handler = request.ProxyHandler({'http': '%s' % proxy_url,
|
||||||
|
'https': '%s' % proxy_url})
|
||||||
|
proxy_auth_handler = request.ProxyBasicAuthHandler(pass_mgr)
|
||||||
|
opener = request.build_opener(proxy_handler, proxy_auth_handler)
|
||||||
|
else:
|
||||||
|
logging.info("use proxy: %s" % proxy)
|
||||||
|
|
||||||
|
proxy_handler = request.ProxyHandler({'http': '%s' % proxy,
|
||||||
|
'https': '%s' % proxy})
|
||||||
opener = request.build_opener(proxy_handler)
|
opener = request.build_opener(proxy_handler)
|
||||||
|
|
||||||
request.install_opener(opener)
|
request.install_opener(opener)
|
||||||
|
|
||||||
def unset_proxy():
|
def unset_proxy():
|
||||||
@ -1096,11 +1110,30 @@ def unset_proxy():
|
|||||||
def set_http_proxy(proxy):
|
def set_http_proxy(proxy):
|
||||||
if proxy == None: # Use system default setting
|
if proxy == None: # Use system default setting
|
||||||
proxy_support = request.ProxyHandler()
|
proxy_support = request.ProxyHandler()
|
||||||
|
opener = request.build_opener(proxy_support)
|
||||||
elif proxy == '': # Don't use any proxy
|
elif proxy == '': # Don't use any proxy
|
||||||
proxy_support = request.ProxyHandler({})
|
proxy_support = request.ProxyHandler({})
|
||||||
else: # Use proxy
|
|
||||||
proxy_support = request.ProxyHandler({'http': '%s' % proxy, 'https': '%s' % proxy})
|
|
||||||
opener = request.build_opener(proxy_support)
|
opener = request.build_opener(proxy_support)
|
||||||
|
else:
|
||||||
|
cred = match1(proxy, r'(.*)@')
|
||||||
|
if cred: # Proxy with authentication
|
||||||
|
user, passwd = match1(cred, r'(.*):'), match1(cred, r':(.*)')
|
||||||
|
proxy_url = match1(proxy, r'@(.*)')
|
||||||
|
logging.info("use proxy: %s" % proxy_url)
|
||||||
|
|
||||||
|
pass_mgr = request. HTTPPasswordMgrWithDefaultRealm()
|
||||||
|
pass_mgr.add_password(None, proxy_url, user, passwd)
|
||||||
|
proxy_handler = request.ProxyHandler({'http': '%s' % proxy_url,
|
||||||
|
'https': '%s' % proxy_url})
|
||||||
|
proxy_auth_handler = request.ProxyBasicAuthHandler(pass_mgr)
|
||||||
|
opener = request.build_opener(proxy_handler, proxy_auth_handler)
|
||||||
|
else:
|
||||||
|
logging.info("use proxy: %s" % proxy)
|
||||||
|
|
||||||
|
proxy_handler = request.ProxyHandler({'http': '%s' % proxy,
|
||||||
|
'https': '%s' % proxy})
|
||||||
|
opener = request.build_opener(proxy_handler)
|
||||||
|
|
||||||
request.install_opener(opener)
|
request.install_opener(opener)
|
||||||
|
|
||||||
def print_more_compatible(*args, **kwargs):
|
def print_more_compatible(*args, **kwargs):
|
||||||
|
Loading…
Reference in New Issue
Block a user