Do not count unmatched or skipped videos towards max-downloads (Closes #232)
This commit is contained in:
		
							parent
							
								
									c379c181e0
								
							
						
					
					
						commit
						77315556f1
					
				
					 1 changed files with 18 additions and 11 deletions
				
			
		| 
						 | 
					@ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue