Add --max-sleep-interval (Closes #9930)
This commit is contained in:
		
							parent
							
								
									3a380766d1
								
							
						
					
					
						commit
						065bc35489
					
				
					 4 changed files with 27 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -249,7 +249,11 @@ class YoutubeDL(object):
 | 
			
		|||
    source_address:    (Experimental) Client-side IP address to bind to.
 | 
			
		||||
    call_home:         Boolean, true iff we are allowed to contact the
 | 
			
		||||
                       youtube-dl servers for debugging.
 | 
			
		||||
    sleep_interval:    Number of seconds to sleep before each download.
 | 
			
		||||
    sleep_interval:    Minimum number of seconds to sleep before each download.
 | 
			
		||||
                       Sleep will be for a random interval if --max-sleep-interval is also passed.
 | 
			
		||||
    max_sleep_interval:Max number of seconds to sleep before each download.
 | 
			
		||||
                       Sleep will be for a random interval if passed along with --min-sleep-interval
 | 
			
		||||
                       or --sleep-interval, otherwise ignored.
 | 
			
		||||
    listformats:       Print an overview of available video formats and exit.
 | 
			
		||||
    list_thumbnails:   Print a table of all thumbnails and exit.
 | 
			
		||||
    match_filter:      A function that gets called with the info_dict of
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -145,6 +145,12 @@ def _real_main(argv=None):
 | 
			
		|||
        if numeric_limit is None:
 | 
			
		||||
            parser.error('invalid max_filesize specified')
 | 
			
		||||
        opts.max_filesize = numeric_limit
 | 
			
		||||
    if opts.sleep_interval is not None:
 | 
			
		||||
        if opts.sleep_interval < 0:
 | 
			
		||||
            parser.error('sleep interval should not be negative')
 | 
			
		||||
        elif opts.max_sleep_interval is not None:
 | 
			
		||||
            if opts.max_sleep_interval < opts.sleep_interval:
 | 
			
		||||
                parser.error('max sleep interval should not be less than sleep interval')
 | 
			
		||||
 | 
			
		||||
    def parse_retries(retries):
 | 
			
		||||
        if retries in ('inf', 'infinite'):
 | 
			
		||||
| 
						 | 
				
			
			@ -370,6 +376,7 @@ def _real_main(argv=None):
 | 
			
		|||
        'source_address': opts.source_address,
 | 
			
		||||
        'call_home': opts.call_home,
 | 
			
		||||
        'sleep_interval': opts.sleep_interval,
 | 
			
		||||
        'max_sleep_interval': opts.max_sleep_interval,
 | 
			
		||||
        'external_downloader': opts.external_downloader,
 | 
			
		||||
        'list_thumbnails': opts.list_thumbnails,
 | 
			
		||||
        'playlist_items': opts.playlist_items,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,6 +4,7 @@ import os
 | 
			
		|||
import re
 | 
			
		||||
import sys
 | 
			
		||||
import time
 | 
			
		||||
import random
 | 
			
		||||
 | 
			
		||||
from ..compat import compat_os_name
 | 
			
		||||
from ..utils import (
 | 
			
		||||
| 
						 | 
				
			
			@ -342,8 +343,10 @@ class FileDownloader(object):
 | 
			
		|||
            })
 | 
			
		||||
            return True
 | 
			
		||||
 | 
			
		||||
        sleep_interval = self.params.get('sleep_interval')
 | 
			
		||||
        if sleep_interval:
 | 
			
		||||
        sleep_lower_bound = self.params.get('sleep_interval')
 | 
			
		||||
        if sleep_lower_bound:
 | 
			
		||||
            sleep_upper_bound = self.params.get('max_sleep_interval', sleep_lower_bound)
 | 
			
		||||
            sleep_interval = random.uniform(sleep_lower_bound, sleep_upper_bound)
 | 
			
		||||
            self.to_screen('[download] Sleeping %s seconds...' % sleep_interval)
 | 
			
		||||
            time.sleep(sleep_interval)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -499,9 +499,17 @@ def parseOpts(overrideArguments=None):
 | 
			
		|||
        dest='bidi_workaround', action='store_true',
 | 
			
		||||
        help='Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH')
 | 
			
		||||
    workarounds.add_option(
 | 
			
		||||
        '--sleep-interval', metavar='SECONDS',
 | 
			
		||||
        '--sleep-interval', '--min-sleep-interval', metavar='SECONDS',
 | 
			
		||||
        dest='sleep_interval', type=float,
 | 
			
		||||
        help='Number of seconds to sleep before each download.')
 | 
			
		||||
        help='Minimum number of seconds to sleep before each download. Sleep will be for a random interval if '
 | 
			
		||||
             '--max-sleep-interval is also passed.'
 | 
			
		||||
    )
 | 
			
		||||
    workarounds.add_option(
 | 
			
		||||
        '--max-sleep-interval', metavar='SECONDS',
 | 
			
		||||
        dest='max_sleep_interval', type=float,
 | 
			
		||||
        help='Max number of seconds to sleep before each download. Sleep will be for a random interval if passed'
 | 
			
		||||
             ' along with --min-sleep-interval or --sleep-interval, otherwise ignored.'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    verbosity = optparse.OptionGroup(parser, 'Verbosity / Simulation Options')
 | 
			
		||||
    verbosity.add_option(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue