Refactor, update tests

This commit is contained in:
7x11x13
2025-01-08 13:29:18 -05:00
parent 25dca22cb7
commit ac69f9474b
3 changed files with 11 additions and 15 deletions
+7 -3
View File
@@ -267,7 +267,6 @@ class YoutubeDL:
outtmpl_na_placeholder: Placeholder for unavailable meta fields.
restrictfilenames: Do not allow "&" and spaces in file names
trim_file_name: Limit length of filename (extension excluded)
trim_file_name_mode: Mode of filename trimming ('c' for characters or 'b' for bytes)
filesystem_encoding: Encoding to use when calculating filename length in bytes
windowsfilenames: True: Force filenames to be Windows compatible
False: Sanitize filenames only minimally
@@ -1439,8 +1438,13 @@ class YoutubeDL:
outtmpl = self.escape_outtmpl(outtmpl)
filename = outtmpl % info_dict
max_file_name = self.params.get('trim_file_name')
mode = self.params.get('trim_file_name_mode')
def parse_trim_file_name(trim_file_name):
if trim_file_name is None or trim_file_name == 'notrim':
return 0, None
mobj = re.match(r'(?:(?P<length>\d+)(?P<mode>b|c)?|notrim)', trim_file_name)
return int(mobj.group('length')), mobj.group('mode') or 'c'
max_file_name, mode = parse_trim_file_name(self.params.get('trim_file_name'))
if max_file_name == 0:
# no maximum
return filename + suffix
+2 -10
View File
@@ -430,15 +430,8 @@ def validate_options(opts):
}
# Other options
opts.trim_file_name_mode = 'c'
if opts.trim_file_name is not None:
mobj = re.match(r'(?:(?P<length>\d+)(?P<mode>b|c)?|notrim)', opts.trim_file_name)
validate(mobj, 'trim filenames', opts.trim_file_name)
if opts.trim_file_name == 'notrim':
opts.trim_file_name = 0
else:
opts.trim_file_name = int(mobj.group('length'))
opts.trim_file_name_mode = mobj.group('mode') or 'c'
validate_regex('trim filenames', opts.trim_file_name, r'(?:\d+[bc]?|notrim)')
if opts.filesystem_encoding is not None:
try:
codecs.lookup(opts.filesystem_encoding)
@@ -902,7 +895,6 @@ def parse_options(argv=None):
'max_downloads': opts.max_downloads,
'prefer_free_formats': opts.prefer_free_formats,
'trim_file_name': opts.trim_file_name,
'trim_file_name_mode': opts.trim_file_name_mode,
'filesystem_encoding': opts.filesystem_encoding,
'verbose': opts.verbose,
'dump_intermediate_pages': opts.dump_intermediate_pages,