Abort when --max-downloads is reached.

This commit is contained in:
Philipp Hagemeister 2011-12-08 20:59:02 +01:00
parent 0b3f3e1ad9
commit 94fd3201b2

View file

@ -317,6 +317,10 @@ class PostProcessingError(Exception):
""" """
pass pass
class MaxDownloadsReached(Exception):
""" --max-downloads limit has been reached. """
pass
class UnavailableVideoError(Exception): class UnavailableVideoError(Exception):
"""Unavailable Format exception. """Unavailable Format exception.
@ -730,8 +734,7 @@ def process_info(self, info_dict):
max_downloads = self.params.get('max_downloads') max_downloads = self.params.get('max_downloads')
if max_downloads is not None: if max_downloads is not None:
if self._num_downloads > int(max_downloads): if self._num_downloads > int(max_downloads):
self.to_screen(u'[download] Maximum number of downloads reached. Skipping ' + info_dict['title']) raise MaxDownloadsReached()
return
filename = self.prepare_filename(info_dict) filename = self.prepare_filename(info_dict)
@ -4447,7 +4450,12 @@ def _real_main():
parser.error(u'you must provide at least one URL') parser.error(u'you must provide at least one URL')
else: else:
sys.exit() sys.exit()
retcode = fd.download(all_urls)
try:
retcode = fd.download(all_urls)
except MaxDownloadsReached:
fd.to_screen(u'--max-download limit reached, aborting.')
retcode = 101
# Dump cookie jar if requested # Dump cookie jar if requested
if opts.cookiefile is not None: if opts.cookiefile is not None: