From 3fe107b2991399a3ea0c446cf579e977b75817dd Mon Sep 17 00:00:00 2001 From: Alex Shnitman Date: Sun, 25 Jul 2021 20:56:56 +0300 Subject: [PATCH] set AUDIO_DOWNLOAD_DIR to the value if DOWNLOAD_DIR if it wasn't overriden in the environment --- Dockerfile | 1 - README.md | 2 +- app/main.py | 5 ++++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1f19971..7c8aa5e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,7 +25,6 @@ COPY app ./app COPY --from=builder /metube/dist/metube ./ui/dist/metube ENV DOWNLOAD_DIR /downloads -ENV AUDIO_DOWNLOAD_DIR /downloads VOLUME /downloads EXPOSE 8081 CMD ["python3", "app/main.py"] diff --git a/README.md b/README.md index 4942bad..57bbad6 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ services: Certain values can be set via environment variables, using the `-e` parameter on the docker command line, or the `environment:` section in docker-compose. * __DOWNLOAD_DIR__: path to where the downloads will be saved. Defaults to `/downloads` in the docker image, and `.` otherwise. -* __AUDIO_DOWNLOAD_DIR__: path to where the audio downloads will be saved. Defaults to `/downloads` in the docker image, and `.` otherwise. +* __AUDIO_DOWNLOAD_DIR__: path to where audio-only downloads will be saved, if you wish to separate them from the video downloads. Defaults to the value of `DOWNLOAD_DIR`. * __URL_PREFIX__: base path for the web server (for use when hosting behind a reverse proxy). Defaults to `/`. * __OUTPUT_TEMPLATE__: the template for the filenames of the downloaded videos, formatted according to [this spec](https://github.com/ytdl-org/youtube-dl/blob/master/README.md#output-template). Defaults to `%(title)s.%(ext)s`. diff --git a/app/main.py b/app/main.py index 194bba6..dad19e3 100644 --- a/app/main.py +++ b/app/main.py @@ -16,7 +16,7 @@ log = logging.getLogger('main') class Config: _DEFAULTS = { 'DOWNLOAD_DIR': '.', - 'AUDIO_DOWNLOAD_DIR': '.', + 'AUDIO_DOWNLOAD_DIR': '%%DOWNLOAD_DIR', 'URL_PREFIX': '', 'OUTPUT_TEMPLATE': '%(title)s.%(ext)s', } @@ -24,6 +24,9 @@ class Config: def __init__(self): for k, v in self._DEFAULTS.items(): setattr(self, k, os.environ[k] if k in os.environ else v) + for k, v in self.__dict__.items(): + if v.startswith('%%'): + setattr(self, k, getattr(self, v[2:])) if not self.URL_PREFIX.endswith('/'): self.URL_PREFIX += '/'