mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[utils] Create DownloadCancelled exception
				
					
				
			as super-class of ExistingVideoReached, RejectedVideoReached, MaxDownloadsReached Third parties can also sub-class this to cancel the download queue from a hook
This commit is contained in:
		| @@ -56,6 +56,7 @@ from .utils import ( | ||||
|     DEFAULT_OUTTMPL, | ||||
|     determine_ext, | ||||
|     determine_protocol, | ||||
|     DownloadCancelled, | ||||
|     DownloadError, | ||||
|     encode_compat_str, | ||||
|     encodeFilename, | ||||
| @@ -1320,7 +1321,7 @@ class YoutubeDL(object): | ||||
|                 self.to_stderr('\r') | ||||
|                 self.report_warning('The download speed is below throttle limit. Re-extracting data') | ||||
|                 return wrapper(self, *args, **kwargs) | ||||
|             except (MaxDownloadsReached, ExistingVideoReached, RejectedVideoReached, LazyList.IndexError): | ||||
|             except (DownloadCancelled, LazyList.IndexError): | ||||
|                 raise | ||||
|             except Exception as e: | ||||
|                 if self.params.get('ignoreerrors'): | ||||
| @@ -2949,14 +2950,8 @@ class YoutubeDL(object): | ||||
|                     url, force_generic_extractor=self.params.get('force_generic_extractor', False)) | ||||
|             except UnavailableVideoError: | ||||
|                 self.report_error('unable to download video') | ||||
|             except MaxDownloadsReached: | ||||
|                 self.to_screen('[info] Maximum number of downloads reached') | ||||
|                 raise | ||||
|             except ExistingVideoReached: | ||||
|                 self.to_screen('[info] Encountered a video that is already in the archive, stopping due to --break-on-existing') | ||||
|                 raise | ||||
|             except RejectedVideoReached: | ||||
|                 self.to_screen('[info] Encountered a video that did not match filter, stopping due to --break-on-reject') | ||||
|             except DownloadCancelled as e: | ||||
|                 self.to_screen(f'[info] {e.msg}') | ||||
|                 raise | ||||
|             else: | ||||
|                 if self.params.get('dump_single_json', False): | ||||
|   | ||||
| @@ -2542,14 +2542,29 @@ class PostProcessingError(YoutubeDLError): | ||||
|         self.msg = msg | ||||
|  | ||||
|  | ||||
| class ExistingVideoReached(YoutubeDLError): | ||||
|     """ --max-downloads limit has been reached. """ | ||||
|     pass | ||||
| class DownloadCancelled(YoutubeDLError): | ||||
|     """ Exception raised when the download queue should be interrupted """ | ||||
|     msg = 'The download was cancelled' | ||||
|  | ||||
|     def __init__(self, msg=None): | ||||
|         if msg is not None: | ||||
|             self.msg = msg | ||||
|         YoutubeDLError.__init__(self, self.msg) | ||||
|  | ||||
|  | ||||
| class RejectedVideoReached(YoutubeDLError): | ||||
| class ExistingVideoReached(DownloadCancelled): | ||||
|     """ --break-on-existing triggered """ | ||||
|     msg = 'Encountered a video that is already in the archive, stopping due to --break-on-existing' | ||||
|  | ||||
|  | ||||
| class RejectedVideoReached(DownloadCancelled): | ||||
|     """ --break-on-reject triggered """ | ||||
|     msg = 'Encountered a video that did not match filter, stopping due to --break-on-reject' | ||||
|  | ||||
|  | ||||
| class MaxDownloadsReached(DownloadCancelled): | ||||
|     """ --max-downloads limit has been reached. """ | ||||
|     pass | ||||
|     msg = 'Maximum number of downloads reached, stopping due to --max-downloads' | ||||
|  | ||||
|  | ||||
| class ThrottledDownload(YoutubeDLError): | ||||
| @@ -2557,11 +2572,6 @@ class ThrottledDownload(YoutubeDLError): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| class MaxDownloadsReached(YoutubeDLError): | ||||
|     """ --max-downloads limit has been reached. """ | ||||
|     pass | ||||
|  | ||||
|  | ||||
| class UnavailableVideoError(YoutubeDLError): | ||||
|     """Unavailable Format exception. | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan