You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
9.8 KiB

#!/usr/bin/env python
import os
import sys
import logging
import configparser
import xml.etree.ElementTree as ET
autoProcess = os.path.join(os.environ.get("SMA_PATH", "/usr/local/sma"), "config/autoProcess.ini")
def main():
safeConfigParser = configparser.ConfigParser()
safeConfigParser.read(autoProcess)
# Set FFMPEG/FFProbe Paths
safeConfigParser.set("Converter", "ffmpeg", "ffmpeg")
safeConfigParser.set("Converter", "ffprobe", "ffprobe")
if os.environ.get("CONVERTER_THREADS"):
safeConfigParser.set("Converter", "threads", os.environ.get("CONVERTER_THREADS"))
if os.environ.get("CONVERTER_OUTPUT_FORMAT"):
safeConfigParser.set("Converter", "output-format", os.environ.get("CONVERTER_OUTPUT_FORMAT"))
if os.environ.get("CONVERTER_OUTPUT_EXTENSION"):
safeConfigParser.set("Converter", "output-extension", os.environ.get("CONVERTER_OUTPUT_EXTENSION"))
if os.environ.get("CONVERTER_MINIMUM_SIZE"):
safeConfigParser.set("Converter", "minimum-size", os.environ.get("CONVERTER_MINIMUM_SIZE"))
if os.environ.get("CONVERTER_SORT_STREAMS"):
safeConfigParser.set("Converter", "sort-streams", os.environ.get("CONVERTER_SORT_STREAMS"))
if os.environ.get("CONVERTER_PROCESS_SAME_EXTENSIONS"):
safeConfigParser.set("Converter", "process-same-extensions", os.environ.get("CONVERTER_PROCESS_SAME_EXTENSIONS"))
if os.environ.get("CONVERTER_FORCE_CONVERT"):
safeConfigParser.set("Converter", "force-convert", os.environ.get("CONVERTER_FORCE_CONVERT"))
if os.environ.get("CONVERTER_PREOPTS"):
safeConfigParser.set("Converter", "preopts", os.environ.get("CONVERTER_PREOPTS"))
if os.environ.get("CONVERTER_POSTOPTS"):
safeConfigParser.set("Converter", "postopts", os.environ.get("CONVERTER_POSTOPTS"))
# SET Permissions
if os.environ.get("PERMISSIONS_CHMOD"):
safeConfigParser.set("Permissions", "chmod", os.environ.get("PERMISSIONS_CHMOD"))
# Set Metadata Settings
if os.environ.get("METADATA_RELOCATE_MOV"):
safeConfigParser.set("Metadata", "relocate-moov", os.environ.get("METADATA_RELOCATE_MOV"))
if os.environ.get("METADATA_TAG"):
safeConfigParser.set("Metadata", "tag", os.environ.get("METADATA_TAG"))
if os.environ.get("METADATA_TAG_LANGUAGE"):
safeConfigParser.set("Metadata", "tag-language", os.environ.get("METADATA_TAG_LANGUAGE"))
if os.environ.get("METADATA_DOWNLOAD_ARTWORK"):
safeConfigParser.set("Metadata", "download-artwork", os.environ.get("METADATA_DOWNLOAD_ARTWORK"))
if os.environ.get("METADATA_PRESERVE_SOURCE_DISPOSITION"):
safeConfigParser.set("Metadata", "preserve-source-disposition", os.environ.get("METADATA_PRESERVE_SOURCE_DISPOSITION"))
# Set Video Settings
if os.environ.get("VIDEO_CODEC"):
safeConfigParser.set("Video", "codec", os.environ.get("VIDEO_CODEC"))
if os.environ.get("VIDEO_MAX_BITRATE"):
safeConfigParser.set("Video", "max-bitrate", os.environ.get("VIDEO_MAX_BITRATE"))
if os.environ.get("VIDEO_CRF"):
safeConfigParser.set("Video", "crf", os.environ.get("VIDEO_CRF"))
if os.environ.get("VIDEO_CRF_PROFILES"):
safeConfigParser.set("Video", "crf-profiles", os.environ.get("VIDEO_CRF_PROFILES"))
if os.environ.get("VIDEO_MAX_WIDTH"):
safeConfigParser.set("Video", "max-width", os.environ.get("VIDEO_MAX_WIDTH"))
if os.environ.get("VIDEO_PROFILE"):
safeConfigParser.set("Video", "profile", os.environ.get("VIDEO_PROFILE"))
if os.environ.get("VIDEO_MAX_LEVEL"):
safeConfigParser.set("Video", "max-level", os.environ.get("VIDEO_MAX_LEVEL"))
if os.environ.get("VIDEO_PIX_FMT"):
safeConfigParser.set("Video", "pix-fmt", os.environ.get("VIDEO_PIX_FMT"))
# Set Audio Settings
if os.environ.get("AUDIO_CODEC"):
safeConfigParser.set("Audio", "codec", os.environ.get("AUDIO_CODEC"))
if os.environ.get("AUDIO_LANGUAGES"):
safeConfigParser.set("Audio", "languages", os.environ.get("AUDIO_LANGUAGES"))
if os.environ.get("AUDIO_DEFAULT_LANGUAGE"):
safeConfigParser.set("Audio", "default-language", os.environ.get("AUDIO_DEFAULT_LANGUAGE"))
if os.environ.get("AUDIO_FIRST_STREAM_OF_LANGUAGE"):
safeConfigParser.set("Audio", "first-stream-of-language", os.environ.get("AUDIO_FIRST_STREAM_OF_LANGUAGE"))
if os.environ.get("AUDIO_CHANNEL_BITRATE"):
safeConfigParser.set("Audio", "channel-bitrate", os.environ.get("AUDIO_CHANNEL_BITRATE"))
if os.environ.get("AUDIO_MAX_BITRATE"):
safeConfigParser.set("Audio", "max-bitrate", os.environ.get("AUDIO_MAX_BITRATE"))
if os.environ.get("AUDIO_MAX_CHANNELS"):
safeConfigParser.set("Audio", "max-channels", os.environ.get("AUDIO_MAX_CHANNELS"))
if os.environ.get("AUDIO_PREFER_MORE_CHANNELS"):
safeConfigParser.set("Audio", "prefer-more-channels", os.environ.get("AUDIO_PREFER_MORE_CHANNELS"))
if os.environ.get("AUDIO_DEFAULT_MORE_CHANNELS"):
safeConfigParser.set("Audio", "default-more-channels", os.environ.get("AUDIO_DEFAULT_MORE_CHANNELS"))
if os.environ.get("AUDIO_FILTER"):
safeConfigParser.set("Audio", "filter", os.environ.get("AUDIO_FILTER"))
if os.environ.get("AUDIO_SAMPLE_RATES"):
safeConfigParser.set("Audio", "sample-rates", os.environ.get("AUDIO_SAMPLE_RATES"))
if os.environ.get("AUDIO_COPY_ORIGINAL"):
safeConfigParser.set("Audio", "copy-original", os.environ.get("AUDIO_COPY_ORIGINAL"))
if os.environ.get("AUDIO_AAC_ADTSTOASC"):
safeConfigParser.set("Audio", "aac-adtstoasc", os.environ.get("AUDIO_AAC_ADTSTOASC"))
if os.environ.get("AUDIO_IGNORE_TREHD"):
safeConfigParser.set("Audio", "ignore-truehd", os.environ.get("AUDIO_IGNORE_TREHD"))
# Set Universal Audio Settings
if os.environ.get("UAUDIO_CODEC"):
safeConfigParser.set("Universal Audio", "codec", os.environ.get("UAUDIO_CODEC"))
if os.environ.get("UAUDIO_CHANNEL_BITRATE"):
safeConfigParser.set("Universal Audio", "channel-bitrate", os.environ.get("UAUDIO_CHANNEL_BITRATE"))
if os.environ.get("UAUDIO_FIRST_STREAM_ONLY"):
safeConfigParser.set("Universal Audio", "first-stream-only", os.environ.get("UAUDIO_FIRST_STREAM_ONLY"))
if os.environ.get("UAUDIO_MOVE_AFTER"):
safeConfigParser.set("Universal Audio", "move-after", os.environ.get("UAUDIO_MOVE_AFTER"))
if os.environ.get("UAUDIO_FILTER"):
safeConfigParser.set("Universal Audio", "filter", os.environ.get("UAUDIO_FILTER"))
# Set Subtitle Settings
if os.environ.get("SUBTITLE_CODEC"):
safeConfigParser.set("Subtitle", "codec", os.environ.get("SUBTITLE_CODEC"))
if os.environ.get("SUBTITLE_CODEC_IMAGE_BASED"):
safeConfigParser.set("Subtitle", "codec-image-based", os.environ.get("SUBTITLE_CODEC_IMAGE_BASED"))
if os.environ.get("SUBTITLE_LANGUAGES"):
safeConfigParser.set("Subtitle", "languages", os.environ.get("SUBTITLE_LANGUAGES"))
if os.environ.get("SUBTITLE_DEFAULT_LANGUAGE"):
safeConfigParser.set("Subtitle", "default-language", os.environ.get("SUBTITLE_DEFAULT_LANGUAGE"))
if os.environ.get("SUBTITLE_FIRST_STREAM_OF_LANGUAGE"):
safeConfigParser.set("Subtitle", "first-stream-of-language", os.environ.get("SUBTITLE_FIRST_STREAM_OF_LANGUAGE"))
if os.environ.get("SUBTITLE_ENCODING"):
safeConfigParser.set("Subtitle", "encoding", os.environ.get("SUBTITLE_ENCODING"))
if os.environ.get("SUBTITLE_BURN_SUBTITLES"):
safeConfigParser.set("Subtitle", "burn-subtitles", os.environ.get("SUBTITLE_BURN_SUBTITLES"))
if os.environ.get("SUBTITLE_BURN_DISPOSITIONS"):
safeConfigParser.set("Subtitle", "burn-dispositions", os.environ.get("SUBTITLE_BURN_DISPOSITIONS"))
if os.environ.get("SUBTITLE_DOWNLOAD_SUBS"):
safeConfigParser.set("Subtitle", "download-subs", os.environ.get("SUBTITLE_DOWNLOAD_SUBS"))
if os.environ.get("SUBTITLE_DOWNLOAD_HEARING_IMPAIRED_SUBS"):
safeConfigParser.set("Subtitle", "download-hearing-impaired-subs", os.environ.get("SUBTITLE_DOWNLOAD_HEARING_IMPAIRED_SUBS"))
if os.environ.get("SUBTITLE_DOWNLOAD_PROVIDERS"):
safeConfigParser.set("Subtitle", "download-providers", os.environ.get("SUBTITLE_DOWNLOAD_PROVIDERS"))
if os.environ.get("SUBTITLE_EMBED_SUBS"):
safeConfigParser.set("Subtitle", "embed-subs", os.environ.get("SUBTITLE_EMBED_SUBS"))
if os.environ.get("SUBTITLE_EMBED_IMAGE_SUBS"):
safeConfigParser.set("Subtitle", "embed-image-subs", os.environ.get("SUBTITLE_EMBED_IMAGE_SUBS"))
if os.environ.get("SUBTITLE_EMBED_ONLY_INTERNAL_SUBS"):
safeConfigParser.set("Subtitle", "embed-only-internal-subs", os.environ.get("SUBTITLE_EMBED_ONLY_INTERNAL_SUBS"))
if os.environ.get("SUBTITLE_FILENAME_DISPOSITIONS"):
safeConfigParser.set("Subtitle", "filename-dispositions", os.environ.get("SUBTITLE_FILENAME_DISPOSITIONS"))
if os.environ.get("SUBTITLE_IGNORE_EMBEDDED_SUBS"):
safeConfigParser.set("Subtitle", "ignore-embedded-subs", os.environ.get("SUBTITLE_IGNORE_EMBEDDED_SUBS"))
if os.environ.get("SUBTITLE_ATTACHMENT_CODEC"):
safeConfigParser.set("Subtitle", "attachment-codec", os.environ.get("SUBTITLE_ATTACHMENT_CODEC"))
# Set Plex Settings
if os.environ.get("PLEX_HOST"):
safeConfigParser.set("Plex", "host", os.environ.get("PLEX_HOST"))
if os.environ.get("PLEX_PORT"):
safeConfigParser.set("Plex", "port", os.environ.get("PLEX_PORT"))
if os.environ.get("PLEX_REFRESH"):
safeConfigParser.set("Plex", "refresh", os.environ.get("PLEX_REFRESH"))
if os.environ.get("PLEX_TOKEN"):
safeConfigParser.set("Plex", "token", os.environ.get("PLEX_TOKEN"))
fp = open(autoProcess, "w")
safeConfigParser.write(fp)
fp.close()
if __name__ == '__main__':
main()