mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[InfoExtractor] Support some warning and ._downloader shortcut methods from yt-dlp
				
					
				
			This commit is contained in:
		| @@ -596,6 +596,14 @@ class InfoExtractor(object): | ||||
|         """Sets the downloader for this IE.""" | ||||
|         self._downloader = downloader | ||||
|  | ||||
|     @property | ||||
|     def cache(self): | ||||
|         return self._downloader.cache | ||||
|  | ||||
|     @property | ||||
|     def cookiejar(self): | ||||
|         return self._downloader.cookiejar | ||||
|  | ||||
|     def _real_initialize(self): | ||||
|         """Real initialization process. Redefine in subclasses.""" | ||||
|         pass | ||||
| @@ -942,14 +950,47 @@ class InfoExtractor(object): | ||||
|             else: | ||||
|                 self.report_warning(errmsg + str(ve)) | ||||
|  | ||||
|     def report_warning(self, msg, video_id=None): | ||||
|     def __ie_msg(self, *msg): | ||||
|         return '[{0}] {1}'.format(self.IE_NAME, ''.join(msg)) | ||||
|  | ||||
|     # msg, video_id=None, *args, only_once=False, **kwargs | ||||
|     def report_warning(self, msg, *args, **kwargs): | ||||
|         if len(args) > 0: | ||||
|             video_id = args[0] | ||||
|             args = args[1:] | ||||
|         else: | ||||
|             video_id = kwargs.pop('video_id', None) | ||||
|         idstr = '' if video_id is None else '%s: ' % video_id | ||||
|         self._downloader.report_warning( | ||||
|             '[%s] %s%s' % (self.IE_NAME, idstr, msg)) | ||||
|             self.__ie_msg(idstr, msg), *args, **kwargs) | ||||
|  | ||||
|     def to_screen(self, msg): | ||||
|         """Print msg to screen, prefixing it with '[ie_name]'""" | ||||
|         self._downloader.to_screen('[%s] %s' % (self.IE_NAME, msg)) | ||||
|         self._downloader.to_screen(self.__ie_msg(msg)) | ||||
|  | ||||
|     def write_debug(self, msg, only_once=False, _cache=[]): | ||||
|         '''Log debug message or Print message to stderr''' | ||||
|         if not self.get_param('verbose', False): | ||||
|             return | ||||
|         message = '[debug] ' + self.__ie_msg(msg) | ||||
|         logger = self.get_param('logger') | ||||
|         if logger: | ||||
|             logger.debug(message) | ||||
|         else: | ||||
|             if only_once and hash(message) in _cache: | ||||
|                 return | ||||
|             self._downloader.to_stderr(message) | ||||
|             _cache.append(hash(message)) | ||||
|  | ||||
|     # name, default=None, *args, **kwargs | ||||
|     def get_param(self, name, *args, **kwargs): | ||||
|         default, args = (args[0], args[1:]) if len(args) > 0 else (kwargs.pop('default', None), args) | ||||
|         if self._downloader: | ||||
|             return self._downloader.params.get(name, default, *args, **kwargs) | ||||
|         return default | ||||
|  | ||||
|     def report_drm(self, video_id): | ||||
|         self.raise_no_formats('This video is DRM protected', expected=True, video_id=video_id) | ||||
|  | ||||
|     def report_extraction(self, id_or_name): | ||||
|         """Report information extraction.""" | ||||
| @@ -977,6 +1018,15 @@ class InfoExtractor(object): | ||||
|     def raise_geo_restricted(msg='This video is not available from your location due to geo restriction', countries=None): | ||||
|         raise GeoRestrictedError(msg, countries=countries) | ||||
|  | ||||
|     def raise_no_formats(self, msg, expected=False, video_id=None): | ||||
|         if expected and ( | ||||
|                 self.get_param('ignore_no_formats_error') or self.get_param('wait_for_video')): | ||||
|             self.report_warning(msg, video_id) | ||||
|         elif isinstance(msg, ExtractorError): | ||||
|             raise msg | ||||
|         else: | ||||
|             raise ExtractorError(msg, expected=expected, video_id=video_id) | ||||
|  | ||||
|     # Methods for following #608 | ||||
|     @staticmethod | ||||
|     def url_result(url, ie=None, video_id=None, video_title=None): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user