diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-04-21 11:12:04 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-04-21 11:12:04 +0530 |
commit | a3faeb7de4fa4bf856633266b8ddfb3fc9586018 (patch) | |
tree | 77ef5a095261df5c1c46d6f5d3c387d48d3ab673 /yt_dlp | |
parent | 8c54a3051df902ab734d76e6bd037c685e835282 (diff) | |
download | hypervideo-pre-a3faeb7de4fa4bf856633266b8ddfb3fc9586018.tar.lz hypervideo-pre-a3faeb7de4fa4bf856633266b8ddfb3fc9586018.tar.xz hypervideo-pre-a3faeb7de4fa4bf856633266b8ddfb3fc9586018.zip |
[MetadataFromField] Improve regex and add tests
Diffstat (limited to 'yt_dlp')
-rw-r--r-- | yt_dlp/postprocessor/metadatafromfield.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/yt_dlp/postprocessor/metadatafromfield.py b/yt_dlp/postprocessor/metadatafromfield.py index 195c63f92..1def868e8 100644 --- a/yt_dlp/postprocessor/metadatafromfield.py +++ b/yt_dlp/postprocessor/metadatafromfield.py @@ -7,7 +7,7 @@ from ..compat import compat_str class MetadataFromFieldPP(PostProcessor): - regex = r'(?P<in>.+):(?P<out>.+)$' + regex = r'(?P<in>.*?)(?<!\\):(?P<out>.+)$' def __init__(self, downloader, formats): PostProcessor.__init__(self, downloader) @@ -17,10 +17,11 @@ class MetadataFromFieldPP(PostProcessor): assert isinstance(f, compat_str) match = re.match(self.regex, f) assert match is not None + inp = match.group('in').replace('\\:', ':') self._data.append({ - 'in': match.group('in'), + 'in': inp, 'out': match.group('out'), - 'tmpl': self.field_to_template(match.group('in')), + 'tmpl': self.field_to_template(inp), 'regex': self.format_to_regex(match.group('out')), }) @@ -68,6 +69,6 @@ class MetadataFromFieldPP(PostProcessor): class MetadataFromTitlePP(MetadataFromFieldPP): # for backward compatibility def __init__(self, downloader, titleformat): - super(MetadataFromTitlePP, self).__init__(downloader, ['title:%s' % titleformat]) + super(MetadataFromTitlePP, self).__init__(downloader, ['%%(title)s:%s' % titleformat]) self._titleformat = titleformat self._titleregex = self._data[0]['regex'] |