54 lines
2.3 KiB
Python
54 lines
2.3 KiB
Python
from dataclasses import dataclass
|
|
from typing import Self
|
|
|
|
|
|
@dataclass
|
|
class Params:
|
|
|
|
copy_unprocessed: bool
|
|
force_compress: bool
|
|
mimic_mode: bool
|
|
hide_errors: bool
|
|
webp_rgba: bool
|
|
workers: int
|
|
|
|
audio_ext: str
|
|
audio_bitrate: str
|
|
|
|
image_downscale: int
|
|
image_ext: str
|
|
image_fall_ext: str
|
|
image_lossless: str
|
|
image_quality: int
|
|
|
|
video_crf: int
|
|
video_skip: bool
|
|
video_ext: str
|
|
video_codec: str
|
|
|
|
@classmethod
|
|
def setup(cls, config, args) -> Self:
|
|
copy_unprocessed = config["FFMPEG"]["CopyUnprocessed"] if not args.u else args.u
|
|
force_compress = config["FFMPEG"]["ForceCompress"] if not args.force else args.force
|
|
mimic_mode = config["FFMPEG"]["MimicMode"] if not args.mimic else args.mimic
|
|
hide_errors = config["FFMPEG"]["HideErrors"] if not args.silent else args.silent
|
|
workers = config["FFMPEG"]["Workers"] if args.jobs is None else args.jobs
|
|
webp_rgba = config["FFMPEG"]["WebpRGBA"] if not args.webprgba else args.webprgba
|
|
audio_ext = config["AUDIO"]["Extension"] if args.aext is None else args.aext
|
|
audio_bitrate = config["AUDIO"]["BitRate"] if args.abit is None else args.abit
|
|
image_downscale = config["IMAGE"]["ResDownScale"] if args.idown is None else args.idown
|
|
image_ext = config["IMAGE"]["Extension"] if args.iext is None else args.iext
|
|
image_fall_ext = config["IMAGE"]["FallBackExtension"] if args.ifallext is None else args.ifallext
|
|
image_lossless = config["IMAGE"]["Lossless"] if not args.ilossless else args.ilossless
|
|
image_quality = config["IMAGE"]["Quality"] if args.iquality is None else args.iquality
|
|
video_crf = config["VIDEO"]["CRF"] if args.vcrf is None else args.vcrf
|
|
video_skip = config["VIDEO"]["SkipVideo"] if args.vskip is None else args.vskip
|
|
video_ext = config["VIDEO"]["Extension"] if args.vext is None else args.vext
|
|
video_codec = config["VIDEO"]["Codec"] if args.vcodec is None else args.vcodec
|
|
|
|
return cls(
|
|
copy_unprocessed, force_compress, mimic_mode, hide_errors, webp_rgba, workers,
|
|
audio_ext, audio_bitrate,
|
|
image_downscale, image_ext, image_fall_ext, image_lossless, image_quality,
|
|
video_crf, video_skip, video_ext, video_codec
|
|
)
|