IE._WORKING attribute in order to warn the users and skip the tests on broken IEs
This commit is contained in:
		
							parent
							
								
									7e4674830e
								
							
						
					
					
						commit
						03c5b0fbd4
					
				
					 2 changed files with 14 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -481,6 +481,11 @@ class FileDownloader(object):
 | 
			
		|||
				if not ie.suitable(url):
 | 
			
		||||
					continue
 | 
			
		||||
 | 
			
		||||
				# Warn if the _WORKING attribute is False
 | 
			
		||||
				if not ie.working():
 | 
			
		||||
					self.trouble(u'WARNING: the program functionality for this site has been marked as broken, '
 | 
			
		||||
						         u'and will probably not work. If you want to go on, use the -i option.')
 | 
			
		||||
 | 
			
		||||
				# Suitable InfoExtractor found
 | 
			
		||||
				suitable_found = True
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,10 +63,14 @@ class InfoExtractor(object):
 | 
			
		|||
 | 
			
		||||
	_real_extract() must return a *list* of information dictionaries as
 | 
			
		||||
	described above.
 | 
			
		||||
 | 
			
		||||
	Finally, the _WORKING attribute should be set to False for broken IEs
 | 
			
		||||
	in order to warn the users and skip the tests.
 | 
			
		||||
	"""
 | 
			
		||||
 | 
			
		||||
	_ready = False
 | 
			
		||||
	_downloader = None
 | 
			
		||||
	_WORKING = True
 | 
			
		||||
 | 
			
		||||
	def __init__(self, downloader=None):
 | 
			
		||||
		"""Constructor. Receives an optional downloader."""
 | 
			
		||||
| 
						 | 
				
			
			@ -77,6 +81,10 @@ class InfoExtractor(object):
 | 
			
		|||
		"""Receives a URL and returns True if suitable for this IE."""
 | 
			
		||||
		return re.match(self._VALID_URL, url) is not None
 | 
			
		||||
 | 
			
		||||
	def working(self):
 | 
			
		||||
		"""Getter method for _WORKING."""
 | 
			
		||||
		return self._WORKING
 | 
			
		||||
 | 
			
		||||
	def initialize(self):
 | 
			
		||||
		"""Initializes an instance (authentication, etc)."""
 | 
			
		||||
		if not self._ready:
 | 
			
		||||
| 
						 | 
				
			
			@ -1891,6 +1899,7 @@ class DepositFilesIE(InfoExtractor):
 | 
			
		|||
class FacebookIE(InfoExtractor):
 | 
			
		||||
	"""Information Extractor for Facebook"""
 | 
			
		||||
 | 
			
		||||
	_WORKING = False
 | 
			
		||||
	_VALID_URL = r'^(?:https?://)?(?:\w+\.)?facebook\.com/(?:video/video|photo)\.php\?(?:.*?)v=(?P<ID>\d+)(?:.*)'
 | 
			
		||||
	_LOGIN_URL = 'https://login.facebook.com/login.php?m&next=http%3A%2F%2Fm.facebook.com%2Fhome.php&'
 | 
			
		||||
	_NETRC_MACHINE = 'facebook'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue