refactor proxy handling code (#2357)
- allow gallery-dl proxy settings to overwrite environment proxies
- allow specifying different proxies for data extraction and download
- add 'downloader.proxy' option
- '-o extractor.proxy=–PROXY_URL -o downloader.proxy=null'
now has the same effect as youtube-dl's '--geo-verification-proxy'
This commit is contained in:
@@ -522,6 +522,26 @@ def build_extractor_filter(categories, negate=True, special=None):
|
||||
return lambda extr: any(t(extr) for t in tests)
|
||||
|
||||
|
||||
def build_proxy_map(proxies, log=None):
|
||||
"""Generate a proxy map"""
|
||||
if not proxies:
|
||||
return None
|
||||
|
||||
if isinstance(proxies, str):
|
||||
if "://" not in proxies:
|
||||
proxies = "http://" + proxies.lstrip("/")
|
||||
return {"http": proxies, "https": proxies}
|
||||
|
||||
if isinstance(proxies, dict):
|
||||
for scheme, proxy in proxies.items():
|
||||
if "://" not in proxy:
|
||||
proxies[scheme] = "http://" + proxy.lstrip("/")
|
||||
return proxies
|
||||
|
||||
if log:
|
||||
log.warning("invalid proxy specifier: %s", proxies)
|
||||
|
||||
|
||||
def build_predicate(predicates):
|
||||
if not predicates:
|
||||
return lambda url, kwdict: True
|
||||
|
||||
Reference in New Issue
Block a user