mirror of https://github.com/yt-dlp/yt-dlp.git
Do not count unmatched or skipped videos towards max-downloads (Closes #232)
This commit is contained in:
parent
c379c181e0
commit
77315556f1
|
@ -699,15 +699,32 @@ class FileDownloader(object):
|
||||||
self.trouble(u'ERROR: invalid system charset or erroneous output template')
|
self.trouble(u'ERROR: invalid system charset or erroneous output template')
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def _match_entry(self, info_dict):
|
||||||
|
""" Returns None iff the file should be downloaded """
|
||||||
|
|
||||||
|
title = info_dict['title']
|
||||||
|
matchtitle = self.params.get('matchtitle', False)
|
||||||
|
if matchtitle and not re.search(matchtitle, title, re.IGNORECASE):
|
||||||
|
return u'[download] "' + title + '" title did not match pattern "' + matchtitle + '"'
|
||||||
|
rejecttitle = self.params.get('rejecttitle', False)
|
||||||
|
if rejecttitle and re.search(rejecttitle, title, re.IGNORECASE):
|
||||||
|
return u'"' + title + '" title matched reject pattern "' + rejecttitle + '"'
|
||||||
|
return None
|
||||||
|
|
||||||
def process_info(self, info_dict):
|
def process_info(self, info_dict):
|
||||||
"""Process a single dictionary returned by an InfoExtractor."""
|
"""Process a single dictionary returned by an InfoExtractor."""
|
||||||
|
|
||||||
|
reason = self._match_entry(info_dict)
|
||||||
|
if reason is not None:
|
||||||
|
self.to_screen(u'[download] ' + reason)
|
||||||
|
return
|
||||||
|
|
||||||
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'])
|
self.to_screen(u'[download] Maximum number of downloads reached. Skipping ' + info_dict['title'])
|
||||||
return
|
return
|
||||||
|
|
||||||
filename = self.prepare_filename(info_dict)
|
filename = self.prepare_filename(info_dict)
|
||||||
|
|
||||||
# Forced printings
|
# Forced printings
|
||||||
|
@ -731,16 +748,6 @@ class FileDownloader(object):
|
||||||
if filename is None:
|
if filename is None:
|
||||||
return
|
return
|
||||||
|
|
||||||
matchtitle=self.params.get('matchtitle',False)
|
|
||||||
rejecttitle=self.params.get('rejecttitle',False)
|
|
||||||
title=info_dict['title'].encode(preferredencoding(), 'xmlcharrefreplace')
|
|
||||||
if matchtitle and not re.search(matchtitle, title, re.IGNORECASE):
|
|
||||||
self.to_screen(u'[download] "%s" title did not match pattern "%s"' % (title, matchtitle))
|
|
||||||
return
|
|
||||||
if rejecttitle and re.search(rejecttitle, title, re.IGNORECASE):
|
|
||||||
self.to_screen(u'[download] "%s" title matched reject pattern "%s"' % (title, rejecttitle))
|
|
||||||
return
|
|
||||||
|
|
||||||
if self.params.get('nooverwrites', False) and os.path.exists(filename):
|
if self.params.get('nooverwrites', False) and os.path.exists(filename):
|
||||||
self.to_stderr(u'WARNING: file exists and will be skipped')
|
self.to_stderr(u'WARNING: file exists and will be skipped')
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue