From c77495e3a4161ee652e5131bb0de7bc8c819f9d9 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Sat, 29 May 2021 02:12:07 +0530 Subject: [PATCH] [cleanup] `_match_entry` --- test/test_YoutubeDL.py | 2 +- yt_dlp/YoutubeDL.py | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index f34d55d82..1696ccd30 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -756,7 +756,7 @@ def __init__(self, *args, **kwargs): def process_info(self, info_dict): super(YDL, self).process_info(info_dict) - def _match_entry(self, info_dict, incomplete): + def _match_entry(self, info_dict, incomplete=False): res = super(FilterYDL, self)._match_entry(info_dict, incomplete) if res is None: self.downloaded_info_dicts.append(info_dict) diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 5b9f2f18e..8e058485a 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -1016,11 +1016,12 @@ def prepare_filename(self, info_dict, dir_type='', warn=False): path = encodeFilename(path, True).decode(preferredencoding()) return sanitize_path(path, force=self.params.get('windowsfilenames')) - def _match_entry(self, info_dict, incomplete): + def _match_entry(self, info_dict, incomplete=False): """ Returns None if the file should be downloaded """ + video_title = info_dict.get('title', info_dict.get('id', 'video')) + def check_filter(): - video_title = info_dict.get('title', info_dict.get('id', 'video')) if 'title' in info_dict: # This can happen when we're just evaluating the playlist title = info_dict['title'] @@ -1047,8 +1048,6 @@ def check_filter(): return 'Skipping %s, because it has exceeded the maximum view count (%d/%d)' % (video_title, view_count, max_views) if age_restricted(info_dict.get('age_limit'), self.params.get('age_limit')): return 'Skipping "%s" because it is age restricted' % video_title - if self.in_download_archive(info_dict): - return '%s has already been recorded in archive' % video_title if not incomplete: match_filter = self.params.get('match_filter') @@ -1058,13 +1057,16 @@ def check_filter(): return ret return None - reason = check_filter() + if self.in_download_archive(info_dict): + reason = '%s has already been recorded in the archive' % video_title + break_opt, break_err = 'break_on_existing', ExistingVideoReached + else: + reason = check_filter() + break_opt, break_err = 'break_on_reject', RejectedVideoReached if reason is not None: self.to_screen('[download] ' + reason) - if reason.endswith('has already been recorded in the archive') and self.params.get('break_on_existing', False): - raise ExistingVideoReached() - elif self.params.get('break_on_reject', False): - raise RejectedVideoReached() + if self.params.get(break_opt, False): + raise break_err() return reason @staticmethod @@ -2327,7 +2329,7 @@ def process_info(self, info_dict): if 'format' not in info_dict: info_dict['format'] = info_dict['ext'] - if self._match_entry(info_dict, incomplete=False) is not None: + if self._match_entry(info_dict) is not None: return self.post_extract(info_dict)