[metadataparser] Don't set None when the field didn't match

Fixes: https://github.com/ytdl-org/youtube-dl/issues/31118#issuecomment-1198254512
This commit is contained in:
pukkandan 2022-07-29 18:14:06 +05:30
parent 2eae7d507c
commit 4f547d6d2c
No known key found for this signature in database
GPG Key ID: 7EEE9E1E817D0A39

View File

@ -1,7 +1,7 @@
import re
from .common import PostProcessor
from ..utils import Namespace
from ..utils import Namespace, filter_dict
class MetadataParserPP(PostProcessor):
@ -68,9 +68,9 @@ def f(info):
if match is None:
self.to_screen(f'Could not interpret {inp!r} as {out!r}')
return
for attribute, value in match.groupdict().items():
for attribute, value in filter_dict(match.groupdict()).items():
info[attribute] = value
self.to_screen('Parsed %s from %r: %r' % (attribute, template, value if value is not None else 'NA'))
self.to_screen(f'Parsed {attribute} from {template!r}: {value!r}')
template = self.field_to_template(inp)
out_re = re.compile(self.format_to_regex(out))