aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2011-11-29 20:08:01 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2011-11-29 20:08:01 +0100
commit77315556f184fee1166552ffad99bdd8b733d75d (patch)
tree1914d3a37cb30ad5b2f516d3bcbd8a9ad40935e4
parentc379c181e057491171a43228752fcb7e20c86d5f (diff)
downloadyoutube-dl-77315556f184fee1166552ffad99bdd8b733d75d.tar.xz
Do not count unmatched or skipped videos towards max-downloads (Closes #232)
-rwxr-xr-xyoutube_dl/__init__.py29
1 files changed, 18 insertions, 11 deletions
diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py
index d7e9c50c0..3fba08fa4 100755
--- a/youtube_dl/__init__.py
+++ b/youtube_dl/__init__.py
@@ -699,15 +699,32 @@ class FileDownloader(object):
self.trouble(u'ERROR: invalid system charset or erroneous output template')
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):
"""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')
if max_downloads is not None:
if self._num_downloads > int(max_downloads):
self.to_screen(u'[download] Maximum number of downloads reached. Skipping ' + info_dict['title'])
return
-
+
filename = self.prepare_filename(info_dict)
# Forced printings
@@ -731,16 +748,6 @@ class FileDownloader(object):
if filename is None:
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):
self.to_stderr(u'WARNING: file exists and will be skipped')
return