mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 04:57:07 -05:00 
			
		
		
		
	Move opener setup into a separate helper function
This commit is contained in:
		@@ -36,6 +36,7 @@ __authors__  = (
 | 
			
		||||
__license__ = 'Public Domain'
 | 
			
		||||
 | 
			
		||||
import codecs
 | 
			
		||||
import collections
 | 
			
		||||
import getpass
 | 
			
		||||
import optparse
 | 
			
		||||
import os
 | 
			
		||||
@@ -447,27 +448,7 @@ def _real_main(argv=None):
 | 
			
		||||
    all_urls = batchurls + args
 | 
			
		||||
    all_urls = [url.strip() for url in all_urls]
 | 
			
		||||
 | 
			
		||||
    # General configuration
 | 
			
		||||
    cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
 | 
			
		||||
    if opts.proxy is not None:
 | 
			
		||||
        if opts.proxy == '':
 | 
			
		||||
            proxies = {}
 | 
			
		||||
        else:
 | 
			
		||||
            proxies = {'http': opts.proxy, 'https': opts.proxy}
 | 
			
		||||
    else:
 | 
			
		||||
        proxies = compat_urllib_request.getproxies()
 | 
			
		||||
        # Set HTTPS proxy to HTTP one if given (https://github.com/rg3/youtube-dl/issues/805)
 | 
			
		||||
        if 'http' in proxies and 'https' not in proxies:
 | 
			
		||||
            proxies['https'] = proxies['http']
 | 
			
		||||
    proxy_handler = compat_urllib_request.ProxyHandler(proxies)
 | 
			
		||||
    https_handler = make_HTTPS_handler(opts)
 | 
			
		||||
    opener = compat_urllib_request.build_opener(https_handler, proxy_handler, cookie_processor, YoutubeDLHandler())
 | 
			
		||||
    # Delete the default user-agent header, which would otherwise apply in
 | 
			
		||||
    # cases where our custom HTTP handler doesn't come into play
 | 
			
		||||
    # (See https://github.com/rg3/youtube-dl/issues/1309 for details)
 | 
			
		||||
    opener.addheaders =[]
 | 
			
		||||
    compat_urllib_request.install_opener(opener)
 | 
			
		||||
    socket.setdefaulttimeout(300) # 5 minutes should be enough (famous last words)
 | 
			
		||||
    _setup_opener(jar=jar, opts=opts)
 | 
			
		||||
 | 
			
		||||
    extractors = gen_extractors()
 | 
			
		||||
 | 
			
		||||
@@ -698,6 +679,37 @@ def _real_main(argv=None):
 | 
			
		||||
 | 
			
		||||
    sys.exit(retcode)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _setup_opener(jar=None, opts=None, timeout=300):
 | 
			
		||||
    if opts is None:
 | 
			
		||||
        FakeOptions = collections.namedtuple(
 | 
			
		||||
            'FakeOptions', ['proxy', 'no_check_certificate'])
 | 
			
		||||
        opts = FakeOptions(proxy=None, no_check_certificate=False)
 | 
			
		||||
 | 
			
		||||
    cookie_processor = compat_urllib_request.HTTPCookieProcessor(jar)
 | 
			
		||||
    if opts.proxy is not None:
 | 
			
		||||
        if opts.proxy == '':
 | 
			
		||||
            proxies = {}
 | 
			
		||||
        else:
 | 
			
		||||
            proxies = {'http': opts.proxy, 'https': opts.proxy}
 | 
			
		||||
    else:
 | 
			
		||||
        proxies = compat_urllib_request.getproxies()
 | 
			
		||||
        # Set HTTPS proxy to HTTP one if given (https://github.com/rg3/youtube-dl/issues/805)
 | 
			
		||||
        if 'http' in proxies and 'https' not in proxies:
 | 
			
		||||
            proxies['https'] = proxies['http']
 | 
			
		||||
    proxy_handler = compat_urllib_request.ProxyHandler(proxies)
 | 
			
		||||
    https_handler = make_HTTPS_handler(opts)
 | 
			
		||||
    opener = compat_urllib_request.build_opener(
 | 
			
		||||
        https_handler, proxy_handler, cookie_processor, YoutubeDLHandler())
 | 
			
		||||
    # Delete the default user-agent header, which would otherwise apply in
 | 
			
		||||
    # cases where our custom HTTP handler doesn't come into play
 | 
			
		||||
    # (See https://github.com/rg3/youtube-dl/issues/1309 for details)
 | 
			
		||||
    opener.addheaders = []
 | 
			
		||||
    compat_urllib_request.install_opener(opener)
 | 
			
		||||
    socket.setdefaulttimeout(timeout)
 | 
			
		||||
    return opener
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def main(argv=None):
 | 
			
		||||
    try:
 | 
			
		||||
        _real_main(argv)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user