add a more natural sort to transcode presets list
This commit is contained in:
parent
791213481f
commit
a6d01f092f
|
@ -126,7 +126,11 @@ class CopyCommand():
|
||||||
|
|
||||||
exists = path_exists(dest)
|
exists = path_exists(dest)
|
||||||
|
|
||||||
if (self.args.skip_existing and not exists) or not self.args.skip_existing:
|
should_skip = False
|
||||||
|
if self.args.skip_existing and exists:
|
||||||
|
should_skip = True
|
||||||
|
|
||||||
|
if should_skip:
|
||||||
print("Copying", src, "to", dest)
|
print("Copying", src, "to", dest)
|
||||||
copy_file(
|
copy_file(
|
||||||
src,
|
src,
|
||||||
|
@ -150,12 +154,19 @@ class CopyCommand():
|
||||||
new_file = deep_copy(file)
|
new_file = deep_copy(file)
|
||||||
new_file.extension = trans_config.file_extension
|
new_file.extension = trans_config.file_extension
|
||||||
|
|
||||||
dest_filepath = new_file.join_filename(
|
dest_filepath = ""
|
||||||
) if self.args.single_directory else new_file.join_path_from_src()
|
|
||||||
|
if self.args.single_directory:
|
||||||
|
dest_filepath = new_file.join_filename()
|
||||||
|
else:
|
||||||
|
dest_filepath = new_file.join_path_from_src()
|
||||||
|
|
||||||
dest_filepath = self.args.dest + "/" + dest_filepath
|
dest_filepath = self.args.dest + "/" + dest_filepath
|
||||||
|
|
||||||
if (self.args.skip_existing and path_exists(
|
should_skip_transcode = self.args.skip_existing and path_exists(
|
||||||
dest_filepath)):
|
dest_filepath)
|
||||||
|
|
||||||
|
if should_skip_transcode:
|
||||||
print("Skipping transcoding", dest_filepath)
|
print("Skipping transcoding", dest_filepath)
|
||||||
self.state.transcoded_files.append(new_file)
|
self.state.transcoded_files.append(new_file)
|
||||||
return
|
return
|
||||||
|
@ -170,6 +181,8 @@ class CopyCommand():
|
||||||
print("Transcoding Files")
|
print("Transcoding Files")
|
||||||
|
|
||||||
if not self.args.single_directory:
|
if not self.args.single_directory:
|
||||||
|
# set can't contain duplicates
|
||||||
|
# so it only creates a dir once
|
||||||
directories = set()
|
directories = set()
|
||||||
for file in self.state.files:
|
for file in self.state.files:
|
||||||
directories.add(file.path_from_src)
|
directories.add(file.path_from_src)
|
||||||
|
@ -195,8 +208,6 @@ class CopyCommand():
|
||||||
trans_config = get_transcode_config(
|
trans_config = get_transcode_config(
|
||||||
self.args.transcode_preset)
|
self.args.transcode_preset)
|
||||||
|
|
||||||
print(trans_config)
|
|
||||||
|
|
||||||
for file in self.state.files:
|
for file in self.state.files:
|
||||||
self._transcode_with_config(
|
self._transcode_with_config(
|
||||||
file, trans_config)
|
file, trans_config)
|
||||||
|
|
|
@ -1,5 +1,18 @@
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
import re
|
||||||
|
|
||||||
|
def atoi(text) -> int or str:
|
||||||
|
try:
|
||||||
|
ret = int(text)
|
||||||
|
return ret
|
||||||
|
except:
|
||||||
|
return text
|
||||||
|
|
||||||
|
def natural_keys(text: str):
|
||||||
|
return [ atoi(c) for c in re.split(r'(-?\d+)', text) ]
|
||||||
|
|
||||||
|
def sort_natural(list: list[str]):
|
||||||
|
list.sort(key=natural_keys)
|
||||||
|
|
||||||
def add_to_arr(
|
def add_to_arr(
|
||||||
arr: list[str],
|
arr: list[str],
|
||||||
|
@ -75,7 +88,7 @@ mp3_presets = {
|
||||||
}
|
}
|
||||||
|
|
||||||
preset_transcode_presets = preset_transcode_presets | mp3_presets
|
preset_transcode_presets = preset_transcode_presets | mp3_presets
|
||||||
add_to_arr(transcode_presets["opus"], mp3_presets.keys())
|
add_to_arr(transcode_presets["mp3"], mp3_presets.keys())
|
||||||
|
|
||||||
opus_presets = {
|
opus_presets = {
|
||||||
"opus-low": "opus-32k",
|
"opus-low": "opus-32k",
|
||||||
|
@ -88,11 +101,11 @@ opus_presets = {
|
||||||
preset_transcode_presets = preset_transcode_presets | opus_presets
|
preset_transcode_presets = preset_transcode_presets | opus_presets
|
||||||
add_to_arr(transcode_presets["opus"], opus_presets.keys())
|
add_to_arr(transcode_presets["opus"], opus_presets.keys())
|
||||||
|
|
||||||
transcode_presets["mp3"].sort()
|
sort_natural(transcode_presets["mp3"])
|
||||||
transcode_presets["opus"].sort()
|
sort_natural(transcode_presets["opus"])
|
||||||
transcode_presets["vorbis"].sort()
|
sort_natural(transcode_presets["vorbis"])
|
||||||
transcode_presets["speex"].sort()
|
sort_natural(transcode_presets["speex"])
|
||||||
transcode_presets["g726"].sort()
|
sort_natural(transcode_presets["g726"])
|
||||||
|
|
||||||
|
|
||||||
def print_transcode_presets():
|
def print_transcode_presets():
|
||||||
|
|
Loading…
Reference in a new issue