From 89a32c17b5ec9b543553228cc7e61bf3c79498d0 Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Tue, 6 Oct 2020 12:32:33 -0500 Subject: [PATCH 1/9] Delete Dockerfile.complex --- Dockerfile.complex | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 Dockerfile.complex diff --git a/Dockerfile.complex b/Dockerfile.complex deleted file mode 100644 index bc97902..0000000 --- a/Dockerfile.complex +++ /dev/null @@ -1,23 +0,0 @@ -## Buildstage ## -FROM lsiobase/alpine:3.12 as buildstage - -RUN \ - echo "**** install packages ****" && \ - apk add --no-cache \ - curl && \ - echo "**** grab rclone ****" && \ - mkdir -p /root-layer && \ - curl -o \ - /root-layer/rclone.deb -L \ - "https://downloads.rclone.org/v1.47.0/rclone-v1.47.0-linux-amd64.deb" - -# copy local files -COPY root/ /root-layer/ - -## Single layer deployed image ## -FROM scratch - -LABEL maintainer="username" - -# Add files from buildstage -COPY --from=buildstage /root-layer/ / From cb739a79e9ae346eda081437ff214a9a7bf3d353 Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Tue, 6 Oct 2020 12:56:08 -0500 Subject: [PATCH 2/9] Update Dockerfile --- Dockerfile | 44 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4ece5e8..58f4720 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,44 @@ +## Buildstage ## +FROM lsiobase/ubuntu:xenial as buildstage + +# Build arguments +ARG BUILD_DATE +ARG VCS_REF +ARG VERSION +ARG DOCKERHUB + +# Build-time metadata as defined at http://label-schema.org +LABEL org.label-schema.name="${DOCKERHUB}:latest" \ + org.label-schema.description="A Docker Mod for the LinuxServer.io Radarr/Sonarr container that adds mkvtoolnix and script for remuxing video files" \ + org.label-schema.url="https://hub.docker.com/r/${DOCKERHUB}" \ + org.label-schema.version=$VERSION \ + org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.vendor="TheCaptain989" \ + org.label-schema.schema-version="1.0" \ + org.label-schema.vcs-url="https://github.com/TheCaptain989/radarr-striptracks" \ + org.label-schema.vcs-ref=$VCS_REF + +# Build-time metadata as defined at https://github.com/opencontainers/image-spec +LABEL org.opencontainers.image.title="${DOCKERHUB}:latest" \ + org.opencontainers.image.description="A Docker Mod for the LinuxServer.io Radarr/Sonarr container that adds mkvtoolnix and script for remuxing video files" \ + org.opencontainers.image.url="https://hub.docker.com/r/${DOCKERHUB}" \ + org.opencontainers.image.version=$VERSION \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.vendor="TheCaptain989" \ + org.opencontainers.image.source="https://github.com/TheCaptain989/radarr-striptracks" \ + org.opencontainers.image.revision=$VCS_REF + +# Add version number for use in container init script +RUN mkdir -p /root-layer/etc && \ + echo "$VERSION" > /root-layer/etc/version.tc989 + +# Stage local files +COPY root/ /root-layer/ + +## Single layer deployed image ## FROM scratch -LABEL maintainer="username" +LABEL maintainer="TheCaptain989" -# copy local files -COPY root/ / +# Copy files from buildstage +COPY --from=buildstage /root-layer/ / From 118e1cab0c8f3e1f57efc410d128692342d0eaea Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Tue, 6 Oct 2020 12:56:57 -0500 Subject: [PATCH 3/9] Delete run --- root/etc/services.d/sshvpn/run | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 root/etc/services.d/sshvpn/run diff --git a/root/etc/services.d/sshvpn/run b/root/etc/services.d/sshvpn/run deleted file mode 100644 index 7d49e79..0000000 --- a/root/etc/services.d/sshvpn/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/with-contenv bash - -sshuttle --dns --remote root@${HOST}:${PORT} 0/0 -x 172.17.0.0/16 From b03e1e65ef1d5f8dd70c4a5436514dd60672046e Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Tue, 6 Oct 2020 20:02:49 -0500 Subject: [PATCH 4/9] radarr: striptracks initial release mkvtoolnix --- Dockerfile | 10 +- README.md | 184 +++++++- root/etc/cont-init.d/60-striptracks-init | 47 ++ root/etc/cont-init.d/98-vpn-config | 27 -- root/usr/local/bin/striptracks-dut.sh | 3 + root/usr/local/bin/striptracks-eng-debug.sh | 3 + root/usr/local/bin/striptracks-eng-jpn.sh | 3 + root/usr/local/bin/striptracks-eng.sh | 3 + root/usr/local/bin/striptracks-fre-debug.sh | 3 + root/usr/local/bin/striptracks-fre.sh | 3 + root/usr/local/bin/striptracks-ger.sh | 3 + root/usr/local/bin/striptracks-spa.sh | 3 + root/usr/local/bin/striptracks.sh | 489 ++++++++++++++++++++ 13 files changed, 738 insertions(+), 43 deletions(-) create mode 100644 root/etc/cont-init.d/60-striptracks-init delete mode 100644 root/etc/cont-init.d/98-vpn-config create mode 100644 root/usr/local/bin/striptracks-dut.sh create mode 100644 root/usr/local/bin/striptracks-eng-debug.sh create mode 100644 root/usr/local/bin/striptracks-eng-jpn.sh create mode 100644 root/usr/local/bin/striptracks-eng.sh create mode 100644 root/usr/local/bin/striptracks-fre-debug.sh create mode 100644 root/usr/local/bin/striptracks-fre.sh create mode 100644 root/usr/local/bin/striptracks-ger.sh create mode 100644 root/usr/local/bin/striptracks-spa.sh create mode 100644 root/usr/local/bin/striptracks.sh diff --git a/Dockerfile b/Dockerfile index 58f4720..bdb716f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,26 +6,28 @@ ARG BUILD_DATE ARG VCS_REF ARG VERSION ARG DOCKERHUB +ARG BASEIMAGE +ARG MODNAME # Build-time metadata as defined at http://label-schema.org -LABEL org.label-schema.name="${DOCKERHUB}:latest" \ +LABEL org.label-schema.name="${DOCKERHUB}:${BASEIMAGE}-${MODNAME}" \ org.label-schema.description="A Docker Mod for the LinuxServer.io Radarr/Sonarr container that adds mkvtoolnix and script for remuxing video files" \ org.label-schema.url="https://hub.docker.com/r/${DOCKERHUB}" \ org.label-schema.version=$VERSION \ org.label-schema.build-date=$BUILD_DATE \ org.label-schema.vendor="TheCaptain989" \ org.label-schema.schema-version="1.0" \ - org.label-schema.vcs-url="https://github.com/TheCaptain989/radarr-striptracks" \ + org.label-schema.vcs-url="https://github.com/linuxserver/docker-mods/tree/radarr-striptracks/" \ org.label-schema.vcs-ref=$VCS_REF # Build-time metadata as defined at https://github.com/opencontainers/image-spec -LABEL org.opencontainers.image.title="${DOCKERHUB}:latest" \ +LABEL org.opencontainers.image.title="${DOCKERHUB}:${BASEIMAGE}-${MODNAME}" \ org.opencontainers.image.description="A Docker Mod for the LinuxServer.io Radarr/Sonarr container that adds mkvtoolnix and script for remuxing video files" \ org.opencontainers.image.url="https://hub.docker.com/r/${DOCKERHUB}" \ org.opencontainers.image.version=$VERSION \ org.opencontainers.image.created=$BUILD_DATE \ org.opencontainers.image.vendor="TheCaptain989" \ - org.opencontainers.image.source="https://github.com/TheCaptain989/radarr-striptracks" \ + org.opencontainers.image.source="https://github.com/linuxserver/docker-mods/tree/radarr-striptracks/" \ org.opencontainers.image.revision=$VCS_REF # Add version number for use in container init script diff --git a/README.md b/README.md index 5636dec..6bf7440 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,177 @@ -# Rsync - Docker mod for openssh-server +A [Docker Mod](https://github.com/linuxserver/docker-mods) for the LinuxServer.io Radarr/Sonarr Docker container that adds a script to automatically strip out unwanted audio and subtitle streams, keeping only the desired languages. +Chapters, if they exist, are preserved. The Title attribute in the MKV is set to the movie title plus year (ex: `The Sting (1973)`) or the series title plus episode information (ex: `Happy! 01x01 - What Smiles Are For`). -This mod adds rsync to openssh-server, to be installed/updated during container start. +**One unified script works in both Radarr and Sonarr. Use this mod in either container!** +>**NOTE:** This mod support Linux OSes only. -In openssh-server docker arguments, set an environment variable `DOCKER_MODS=linuxserver/mods:openssh-server-rsync` +Container info: +![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/linuxserver/mods/radarr-striptracks) +![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/mods/radarr-striptracks "Container Pulls") -If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:openssh-server-rsync|linuxserver/mods:openssh-server-mod2` +# Installation +>**NOTE:** See the [Sonarr/Radarr v3 Builds](./README.md#sonarrradarr-v3-builds) section below for important differences to these instructions for v3 builds. -# Mod creation instructions +1. Pull your selected container ([linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "LinuxServer.io's Radarr container") or [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "LinuxServer.io's Sonarr container")) from Docker Hub: + `docker pull linuxserver/radarr:latest` OR + `docker pull linuxserver/sonarr:latest` -* Fork the repo, create a new branch based on the branch `template`. -* Edit the `Dockerfile` for the mod. `Dockerfile.complex` is only an example and included for reference; it should be deleted when done. -* Inspect the `root` folder contents. Edit, add and remove as necessary. -* Edit this readme with pertinent info, delete these instructions. -* Finally edit the `.github/workflows/BuildImage.yml`. Customize the build branch, and the vars for `BASEIMAGE` and `MODNAME`. -* Ask the team to create a new branch named `-`. Baseimage should be the name of the image the mod will be applied to. The new branch will be based on the `template` branch. -* Submit PR against the branch created by the team. +2. Configure the Docker container with all the port, volume, and environment settings from the *original container documentation* here: + **[linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container")** + **[linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container")** + 1. Add the **DOCKER_MODS** environment variable to the `docker create` command, as follows: + `-e DOCKER_MODS=linuxserver/mods:radarr-striptracks` + + *Example Synology Configuration* + ![striptracks](https://user-images.githubusercontent.com/11523885/95027314-1e006680-065d-11eb-9ff9-cc51648d57bd.png "Synology container settings") + + 2. Start the container. + +3. After all of the above configuration is complete, to use mkvmerge: + 1. Configure a custom script from the Radarr/Sonnar Settings->Connect screen and type the following in the **Path** field: + `/usr/local/bin/striptracks.sh` + + 2. Add the codes for the audio and subtitle languages you want to keep as **Arguments** (details in the [Syntax](./README.md#syntax) section below): + Suggested Example + **`:eng:und :eng`** + +## Usage +>**NOTE:** See the [Sonarr/Radarr v3 Builds](./README.md#sonarrradarr-v3-builds) section below for important differences to these instructions for v3 builds. + +The source video can be any mkvtoolnix supported video format. The output is an MKV file with the same name. + +If you've configured the Radarr/Sonarr Recycle Bin path correctly, the original video will be moved there. +![warning24] **NOTE:** If you have *not* configured the Recycle Bin, the original video file will be deleted/overwritten and permanently lost. + +### Syntax +The script accepts two arguments and one option in the **Arguments** field: + +`[-d] ` + +The arguments are language codes in [ISO639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes "List of ISO 639-2 codes") format. +These are three letter abbreviations prefixed with a colon ':', such as: + +* :eng +* :fre +* :spa + +...etc. + +Multiple codes may be concatenated, such as `:eng:spa` for both English and Spanish. + +It is suggested to use `:eng:und :eng` if you are unsure of what to choose. This will keep English and Undetermined audio and English subtitles, if they exist. +>**NOTE:** The script is smart enough to not remove the last audio track. This way you don't have to specify every possible language if you are importing a +foreign film, for example. + +The `-d` option enables debug logging. + +### Examples +``` +:eng:und :eng # keep English and Undetermined audio and English subtitles +-d :eng "" # Enable debugging, keeping English audio and no subtitles +:eng:kor:jpn :eng:spa # Keep English, Korean, and Japanese audio, and English and + Spanish subtitles +``` + +## Triggers +The only events/notification triggers that have been tested are **On Download** and **On Upgrade** + +![striptracks](https://user-images.githubusercontent.com/11523885/95027402-d0d0c480-065d-11eb-97a8-b02a011572ab.png "Radarr/Sonarr custom script settings") + +## Logs +A log file is created for the script activity called: + +`/config/logs/striptracks.txt` + +This log can be inspected or downloaded from the Radarr/Sonarr GUI under System->Logs->Files + +Script errors will show up in both the script log and the native Radarr/Sonarr log. + +Log rotation is performed with 5 log files of 512KB each being kept. +>![warning24] **NOTE:** If debug logging is enabled, the log file can grow very large very quickly. *Do not leave debug logging enabled permanently.* + +___ + +## Sonarr/Radarr v3 Builds +>![warning] **Warning: Unstable Releases** ![warning] +>The Sonarr/Radarr v3 Builds are the unstable releases (Aphrodite and Phantom) of Radarr and Sonarr. Though the mod works with all versions of the container, I cannot guarantee these releases are stable. + +Important differences for Sonarr/Radarr v3 Builds +### Mod installation +Substitute the following steps for those noted in the [Installation](./README.md#installation) section above. +1. Pull your selected container ([linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "LinuxServer.io's Radarr container") or [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "LinuxServer.io's Sonarr container")) from Docker Hub: + `docker pull linuxserver/radarr:preview` OR + `docker pull linuxserver/sonarr:preview` + +2. Configure the Docker container with all the port, volume, and environment settings from the *original container documentation* here: + **[linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container")** + **[linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container")** + 1. Add the **DOCKER_MODS** environment variable to the `docker create` command, as follows: + `-e DOCKER_MODS=linuxserver/mods:radarr-striptracks` + + *Example Synology Configuration* + ![striptracks](https://user-images.githubusercontent.com/11523885/95027314-1e006680-065d-11eb-9ff9-cc51648d57bd.png "Synology container settings") + + 2. Start the container. + +3. After the above configuration is complete, to use mkvmerge, configure a custom script from the Settings->Connect screen and type the following in the **Path** field: + + `/usr/local/bin/striptracks-eng.sh` + + This is a wrapper script that calls striptracks.sh with the following arguments, which keep English audio and subtitles only! + `:eng:und :eng` + + *For any other combinations of audio and subtitles you **must** either use one of the [included wrapper scripts](./README.md#included-wrapper-scripts) or + create a custom script with the codes for the languages you want to keep. See the [Syntax](./README.md#syntax) section above. + Do not put `striptracks.sh` in the **Path** field!* + +### Included Wrapper Scripts +>**NOTE:** The **Arguments** field for Custom Scripts was removed in Radarr and Sonarr v3 due to security concerns. To support options with this version and later, +a wrapper script can be manually created that will call *striptracks.sh* with the required arguments. + +For your convenience, several wrapper scripts are included in the `/usr/local/bin/` directory. +You may use any of these scripts in place of the `striptracks-eng.sh` mentioned in the [Mod installation](./README.md#mod-installation) section above. + +``` +striptracks-dut.sh # Keep Dutch audio and subtitles +striptracks-eng.sh # Keep English and Undetermined audio and English subtitles +striptracks-eng-debug.sh # Keep English and Undetermined audio and English subtitles, and enable debug logging +striptracks-eng-jpn.sh # Keep English, Japanese, and Undetermined audio and English subtitles +striptracks-fre.sh # Keep French audio and subtitles +striptracks-fre-debug.sh # Keep French audio and subtitles, and enable debug logging +striptracks-ger.sh # Keep German audio and subtitles +striptracks-spa.sh # Keep Spanish audio and subtitles +``` + +### Example Wrapper Script +To configure the last entry from the [Examples](./README.md#examples) section above, create and save a file called `wrapper.sh` to `/usr/local/bin` containing the following text: +``` +#!/bin/bash + +. /usr/local/bin/striptracks.sh :eng:kor:jpn :eng:spa +``` +Then put `/usr/local/bin/wrapper.sh` in the **Path** field in place of `/usr/local/bin/striptracks-eng.sh` mentioned in the [Mod installation](./README.md#mod-installation) section above. + +### Preview Triggers +The only events/notification triggers that have been tested are **On Import** and **On Upgrade** + +![striptracks](https://user-images.githubusercontent.com/11523885/95027374-9830eb00-065d-11eb-8ef7-8d69c9795cbe.png "Radarr/Sonarr custom script settings") + +### Preview Logs +The log can be inspected or downloaded from the Radarr/Sonarr GUI under System->Log Files + +___ + +# Credits + +This would not be possible without the following: + +[Radarr](http://radarr.video/ "Radarr homepage") +[Sonarr](http://sonarr.tv/ "Sonarr homepage") +[LinuxServer.io Radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container") container +[LinuxServer.io Sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container") container +[LinuxServer.io Docker Mods](https://hub.docker.com/r/linuxserver/mods "Docker Mods containers") project +[MKVToolNix](https://mkvtoolnix.download/ "MKVToolNix homepage") by Moritz Bunkus +The AWK script parsing mkvmerge output is adapted from Endoro's post on [VideoHelp](https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889). + +[warning]: http://files.softicons.com/download/application-icons/32x32-free-design-icons-by-aha-soft/png/32/Warning.png "Warning" +[warning24]: http://files.softicons.com/download/toolbar-icons/24x24-free-pixel-icons-by-aha-soft/png/24x24/Warning.png "Warning" diff --git a/root/etc/cont-init.d/60-striptracks-init b/root/etc/cont-init.d/60-striptracks-init new file mode 100644 index 0000000..f363fcb --- /dev/null +++ b/root/etc/cont-init.d/60-striptracks-init @@ -0,0 +1,47 @@ +#!/usr/bin/with-contenv bash + +cat <>> Striptracks Mod by TheCaptain989 <<< +Repo: https://github.com/linuxserver/docker-mods/tree/radarr-striptracks + +Version: $(cat /etc/version.tc989) +---------------- +EOF + +# Determine if setup is needed +if [ ! -f /usr/bin/mkvmerge ]; then + echo "Running first time setup." + + if [ -f /usr/bin/apt ]; then + # Ubuntu + echo "Installing MKVToolNix using apt-get" + apt-get update && \ + apt-get -y install mkvtoolnix && \ + rm -rf /var/lib/apt/lists/* + elif [ -f /sbin/apk ]; then + # Alpine + echo "Installing MKVToolNix using apk" + apk add mkvtoolnix && \ + rm -rf /var/lib/apt/lists/* + else + # Unknown + echo "Unknown package manager. Attempting to install MKVToolNix using apt-get" + apt-get update && \ + apt-get -y install mkvtoolnix && \ + rm -rf /var/lib/apt/lists/* + fi +fi + +# Change ownership +if [ $(stat -c '%G' /usr/local/bin/striptracks.sh) != "users" ]; then + echo "Changing ownership on scripts." + chown root:users /usr/local/bin/striptracks*.sh +fi + +# Make executable +if [ ! -x /usr/local/bin/striptracks.sh ]; then + echo "Making scripts executable." + chmod +x /usr/local/bin/striptracks*.sh +fi + diff --git a/root/etc/cont-init.d/98-vpn-config b/root/etc/cont-init.d/98-vpn-config deleted file mode 100644 index a5f9127..0000000 --- a/root/etc/cont-init.d/98-vpn-config +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/with-contenv bash - -# Determine if setup is needed -if [ ! -f /usr/local/lib/python***/dist-packages/sshuttle ] && \ -[ -f /usr/bin/apt ]; then - ## Ubuntu - apt-get update - apt-get install --no-install-recommends -y \ - iptables \ - openssh-client \ - python3 \ - python3-pip - pip3 install sshuttle -fi -if [ ! -f /usr/lib/python***/site-packages/sshuttle ] && \ -[ -f /sbin/apk ]; then - # Alpine - apk add --no-cache \ - iptables \ - openssh \ - py3-pip \ - python3 - pip3 install sshuttle -fi - -chown -R root:root /root -chmod -R 600 /root/.ssh diff --git a/root/usr/local/bin/striptracks-dut.sh b/root/usr/local/bin/striptracks-dut.sh new file mode 100644 index 0000000..e2c19af --- /dev/null +++ b/root/usr/local/bin/striptracks-dut.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh :dut :dut diff --git a/root/usr/local/bin/striptracks-eng-debug.sh b/root/usr/local/bin/striptracks-eng-debug.sh new file mode 100644 index 0000000..87ed2bb --- /dev/null +++ b/root/usr/local/bin/striptracks-eng-debug.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh -d :eng:und :eng diff --git a/root/usr/local/bin/striptracks-eng-jpn.sh b/root/usr/local/bin/striptracks-eng-jpn.sh new file mode 100644 index 0000000..ea37f5d --- /dev/null +++ b/root/usr/local/bin/striptracks-eng-jpn.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh :eng:jpn:und :eng diff --git a/root/usr/local/bin/striptracks-eng.sh b/root/usr/local/bin/striptracks-eng.sh new file mode 100644 index 0000000..a0eb344 --- /dev/null +++ b/root/usr/local/bin/striptracks-eng.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh :eng:und :eng diff --git a/root/usr/local/bin/striptracks-fre-debug.sh b/root/usr/local/bin/striptracks-fre-debug.sh new file mode 100644 index 0000000..918a198 --- /dev/null +++ b/root/usr/local/bin/striptracks-fre-debug.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh -d :fre:fra :fre:fra diff --git a/root/usr/local/bin/striptracks-fre.sh b/root/usr/local/bin/striptracks-fre.sh new file mode 100644 index 0000000..998ce43 --- /dev/null +++ b/root/usr/local/bin/striptracks-fre.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh :fre:fra :fre:fra diff --git a/root/usr/local/bin/striptracks-ger.sh b/root/usr/local/bin/striptracks-ger.sh new file mode 100644 index 0000000..62047ab --- /dev/null +++ b/root/usr/local/bin/striptracks-ger.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh :ger:deu :ger:deu diff --git a/root/usr/local/bin/striptracks-spa.sh b/root/usr/local/bin/striptracks-spa.sh new file mode 100644 index 0000000..92f6c4e --- /dev/null +++ b/root/usr/local/bin/striptracks-spa.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/striptracks.sh :spa :spa diff --git a/root/usr/local/bin/striptracks.sh b/root/usr/local/bin/striptracks.sh new file mode 100644 index 0000000..9d9034b --- /dev/null +++ b/root/usr/local/bin/striptracks.sh @@ -0,0 +1,489 @@ +#!/bin/bash + +# Video remuxing script designed for use with Radarr and Sonarr +# Automatically strips out unwanted audio and subtitle streams, keeping only the desired languages. +# https://github.com/linuxserver/docker-mods/tree/radarr-striptracks + +# Adapted and corrected from Endoro's post 1/5/2014: +# https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889 +# +# Put a colon `:` in front of every language code. Expects ISO639-2 codes + +# Dependencies: +# mkvmerge +# awk +# curl +# jq +# numfmt +# stat +# nice + +# Exit codes: +# 0 - success; or test +# 1 - no video file specified on command line +# 2 - no audio language specified on command line +# 3 - no subtitle language specified on command line +# 4 - mkvmerge not found +# 5 - specified video file not found +# 6 - unable to rename video to temp video +# 10 - remuxing completed, but no output file found +# 20 - general error + +### Variables +export striptracks_script=$(basename "$0") +export striptracks_pid=$$ +export striptracks_arr_config=/config/config.xml +export striptracks_log=/config/logs/striptracks.txt +export striptracks_maxlogsize=512000 +export striptracks_maxlog=4 +export striptracks_debug=0 +export striptracks_type=$(printenv | sed -n 's/_eventtype *=.*$//p') +if [[ "${striptracks_type,,}" = "radarr" ]]; then + export striptracks_video="$radarr_moviefile_path" + export striptracks_api_endpoint="movie" + export striptracks_json_quality_root=".movieFile" + export striptracks_video_type="movie" + export striptracks_title="$radarr_movie_title ($radarr_movie_year)" +else + if [[ "${striptracks_type,,}" = "sonarr" ]]; then + export striptracks_video="$sonarr_episodefile_path" + export striptracks_api_endpoint="episodefile" + export striptracks_json_quality_root="" + export striptracks_video_type="series" + export striptracks_title="$sonarr_series_title $(numfmt --format "%02f" $sonarr_episodefile_seasonnumber)x$(numfmt --format "%02f" $sonarr_episodefile_episodenumbers) - $sonarr_episodefile_episodetitles" + fi +fi +export striptracks_api="Rescan${striptracks_video_type^}" +export striptracks_json_key="${striptracks_video_type}Id" +export striptracks_api_endpoint_idname="${striptracks_type,,}_${striptracks_api_endpoint}_id" +export striptracks_api_endpoint_id="${!striptracks_api_endpoint_idname}" +export striptracks_video_idname="${striptracks_type,,}_${striptracks_video_type}_id" +export striptracks_video_id="${!striptracks_video_idname}" +export striptracks_eventtype="${striptracks_type,,}_eventtype" +export striptracks_tempvideo="${striptracks_video}.tmp" +export striptracks_newvideo="${striptracks_video%.*}.mkv" +export striptracks_db="/config/${striptracks_type,,}.db" +if [ ! -f "$striptracks_db" ]; then + striptracks_db=/config/nzbdrone.db +fi +export striptracks_recyclebin=$(sqlite3 $striptracks_db 'SELECT Value FROM Config WHERE Key="recyclebin"') +RET=$?; [ "$RET" != 0 ] && >&2 echo "WARNING[$RET]: Unable to read recyclebin information from database \"$striptracks_db\"" + +### Functions +function usage { + usage=" +$striptracks_script +Video remuxing script designed for use with Radarr and Sonarr + +Source: https://github.com/TheCaptain989/radarr-striptracks + +Usage: + $0 [-d] + +Arguments: + audio_languages # ISO639-2 code(s) prefixed with a colon \`:\` + Multiple codes may be concatenated. + subtitle_languages # ISO639-2 code(s) prefixed with a colon \`:\` + Multiple codes may be concatenated. + +Options: + -d # enable debug logging + +Examples: + $striptracks_script :eng:und :eng # keep English and Undetermined audio and + English subtitles + $striptracks_script :eng \"\" # keep English audio and no subtitles + $striptracks_script -d :eng:kor:jpn :eng:spa # Enable debugging, keeping English, Korean, + and Japanese audio, and English and + Spanish subtitles +" + >&2 echo "$usage" +} +# Can still go over striptracks_maxlog if read line is too long +# Must include whole function in subshell for read to work! +function log {( + while read + do + echo $(date +"%Y-%-m-%-d %H:%M:%S.%1N")\|"[$striptracks_pid]$REPLY" >>"$striptracks_log" + local FILESIZE=$(stat -c %s "$striptracks_log") + if [ $FILESIZE -gt $striptracks_maxlogsize ] + then + for i in $(seq $((striptracks_maxlog-1)) -1 0); do + [ -f "${striptracks_log::-4}.$i.txt" ] && mv "${striptracks_log::-4}."{$i,$((i+1))}".txt" + done + [ -f "${striptracks_log::-4}.txt" ] && mv "${striptracks_log::-4}.txt" "${striptracks_log::-4}.0.txt" + touch "$striptracks_log" + fi + done +)} +# Inspired by https://stackoverflow.com/questions/893585/how-to-parse-xml-in-bash +function read_xml { + local IFS=\> + read -d \< ENTITY CONTENT +} +# Get video information +function get_video_info { + [ $striptracks_debug -eq 1 ] && echo "Debug|Getting video information for $striptracks_api_endpoint '$striptracks_api_endpoint_id'. Calling ${striptracks_type^} API using GET and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_api_endpoint_id?apikey=(removed)'" | log + RESULT=$(curl -s -H "Content-Type: application/json" \ + -X GET http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_api_endpoint_id?apikey=$striptracks_apikey) + [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log + if [ "$(echo $RESULT | jq -crM .path)" != "null" ]; then + local RET=0 + else + local RET=1 + fi + return $RET +} +# Initiate API Rescan request +function rescan { + MSG="Info|Calling ${striptracks_type^} API to rescan ${striptracks_video_type}, try #$i" + echo "$MSG" | log + [ $striptracks_debug -eq 1 ] && echo "Debug|Forcing rescan of $striptracks_json_key '$striptracks_video_id', try #$i. Calling ${striptracks_type^} API '$striptracks_api' using POST and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command?apikey=(removed)'" | log + RESULT=$(curl -s -d "{name: '$striptracks_api', $striptracks_json_key: $striptracks_video_id}" -H "Content-Type: application/json" \ + -X POST http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command?apikey=$striptracks_apikey) + [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log + JOBID="$(echo $RESULT | jq -crM .id)" + if [ "$JOBID" != "null" ]; then + local RET=0 + else + local RET=1 + fi + return $RET +} +# Check result of rescan job +function check_rescan { + local i=0 + for ((i=1; i <= 15; i++)); do + [ $striptracks_debug -eq 1 ] && echo "Debug|Checking job $JOBID completion, try #$i. Calling ${striptracks_type^} API using GET and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command/$JOBID?apikey=(removed)'" | log + RESULT=$(curl -s -H "Content-Type: application/json" \ + -X GET http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command/$JOBID?apikey=$striptracks_apikey) + [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log + if [ "$(echo $RESULT | jq -crM .status)" = "completed" ]; then + local RET=0 + break + else + if [ "$(echo $RESULT | jq -crM .status)" = "failed" ]; then + local RET=2 + break + else + local RET=1 + sleep 1 + fi + fi + done + return $RET +} + +# Process options +while getopts ":d" opt; do + case ${opt} in + d ) # For debug purposes only + MSG="Debug|Enabling debug logging." + echo "$MSG" | log + >&2 echo "$MSG" + striptracks_debug=1 + printenv | sort | sed 's/^/Debug|/' | log + ;; + esac +done +shift $((OPTIND -1)) + +if [ -z "$1" ]; then + MSG="Error|No audio languages specified!" + echo "$MSG" | log + >&2 echo "$MSG" + usage + exit 2 +fi + +if [ -z "$2" ]; then + MSG="Error|No subtitles languages specified!" + echo "$MSG" | log + >&2 echo "$MSG" + usage + exit 3 +fi + +if [ ! -f "/usr/bin/mkvmerge" ]; then + MSG="Error|/usr/bin/mkvmerge is required by this script" + echo "$MSG" | log + >&2 echo "$MSG" + exit 4 +fi + +if [[ "${!striptracks_eventtype}" = "Test" ]]; then + echo "Info|${striptracks_type^} event: ${!striptracks_eventtype}" | log + echo "Info|Script was test executed successfully." | log + exit 0 +fi + +if [ -z "$striptracks_video" ]; then + MSG="Error|No video file specified! Not called from Radarr/Sonarr?" + echo "$MSG" | log + >&2 echo "$MSG" + usage + exit 1 +fi + +if [ ! -f "$striptracks_video" ]; then + MSG="Error|Input file not found: \"$striptracks_video\"" + echo "$MSG" | log + >&2 echo "$MSG" + exit 5 +fi + +#### BEGIN MAIN +FILESIZE=$(numfmt --to iec --format "%.3f" $(stat -c %s "$striptracks_video")) +MSG="Info|${striptracks_type^} event: ${!striptracks_eventtype}, Video: $striptracks_video, Size: $FILESIZE, AudioKeep: $1, SubsKeep: $2" +echo "$MSG" | log + +# Rename the original video file to a temporary name +[ $striptracks_debug -eq 1 ] && echo "Debug|Renaming: \"$striptracks_video\" to \"$striptracks_tempvideo\"" | log +mv -f "$striptracks_video" "$striptracks_tempvideo" | log +RET=$?; [ "$RET" != 0 ] && { + MSG="ERROR[$RET]: Unable to rename video: \"$striptracks_video\" to temp video: \"$striptracks_tempvideo\". Halting." + echo "$MSG" | log + >&2 echo "$MSG" + exit 6 +} + +# Read in the output of mkvmerge info extraction +[ $striptracks_debug -eq 1 ] && echo "Debug|Executing: /usr/bin/mkvmerge -J \"$striptracks_tempvideo\"" | log +JSON=$(/usr/bin/mkvmerge -J "$striptracks_tempvideo") +RET=$?; [ "$RET" != 0 ] && { + MSG="ERROR[$RET]: Error executing mkvmerge." + echo "$MSG" | log + >&2 echo "$MSG" +} + +# This and the modified AWK script are a hack, and I know it. JQ is crazy hard to learn, BTW. +# Mimic the mkvmerge --identify-verbose option that has been deprecated +JSON_PROCESSED=$(echo $JSON | jq -jcrM ' +( if (.chapters | .[] | .num_entries) then + "Chapters: \(.chapters | .[] | .num_entries) entries\n" + else + "" + end +), +( .tracks | + .[] | + ( "Track ID \(.id): \(.type) (\(.codec)) [", + ( [.properties | to_entries |.[] | "\(.key):\(.value | tostring | gsub(" "; "\\s"))"] | join(" ")), + "]\n" ) +) +') +[ $striptracks_debug -eq 1 ] && echo "$JSON_PROCESSED" | awk '{print "Debug|"$0}' | log + +echo "$JSON_PROCESSED" | awk -v Debug=$striptracks_debug \ +-v OrgVideo="$striptracks_video" \ +-v TempVideo="$striptracks_tempvideo" \ +-v MKVVideo="$striptracks_newvideo" \ +-v Title="$striptracks_title" \ +-v AudioKeep="$1" \ +-v SubsKeep="$2" ' +BEGIN { + MKVMerge="/usr/bin/mkvmerge" + FS="[\t\n: ]" + IGNORECASE=1 +} +/^Track ID/ { + FieldCount=split($0, Fields) + if (Fields[1]=="Track") { + NoTr++ + Track[NoTr, "id"]=Fields[3] + Track[NoTr, "typ"]=Fields[5] + if (Fields[6]~/^\(/) { + Track[NoTr, "code"]=substr(Line,1,match(Line,/\)/)) + sub(/^[^\(]+/,"",Track[NoTr, "code"]) + } + if (Track[NoTr, "typ"]=="video") VidCnt++ + if (Track[NoTr, "typ"]=="audio") AudCnt++ + if (Track[NoTr, "typ"]=="subtitles") SubsCnt++ + for (i=6; i<=FieldCount; i++) { + if (Fields[i]=="language") Track[NoTr, "lang"]=Fields[++i] + } + } +} +/^Chapters/ { + Chapters=$3 +} +END { + if (!NoTr) { print "Error|No tracks found in \""TempVideo"\"" > "/dev/stderr"; exit } + if (!AudCnt) AudCnt=0; if (!SubsCnt) SubsCnt=0 + print "Info|Original tracks: "NoTr" (audio: "AudCnt", subtitles: "SubsCnt")" + if (Chapters) print "Info|Chapters: "Chapters + for (i=1; i<=NoTr; i++) { + if (Debug) print "Debug|i:"i,"Track ID:"Track[i,"id"],"Type:"Track[i,"typ"],"Lang:"Track[i, "lang"],"Code:"Track[i, "code"] + if (Track[i, "typ"]=="audio") { + if (AudioKeep~Track[i, "lang"]) { + AudKpCnt++ + print "Info|Keeping audio track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] + if (AudioCommand=="") { + AudioCommand=Track[i, "id"] + } else { + AudioCommand=AudioCommand","Track[i, "id"] + } + # Special case if there is only one audio track, even if it was not specified + } else if (AudCnt==1) { + AudKpCnt++ + print "Info|Keeping only audio track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] + AudioCommand=Track[i, "id"] + # Special case if there were multiple tracks, none were selected, and this is the last one. + } else if (AudioCommand=="" && Track[i, "id"]==AudCnt) { + AudKpCnt++ + print "Info|Keeping last audio track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] + AudioCommand=Track[i, "id"] + } else { + if (Debug) print "Debug|\tRemove:", Track[i, "typ"], "track", Track[i, "id"], Track[i, "lang"] + } + } else { + if (Track[i, "typ"]=="subtitles") { + if (SubsKeep~Track[i, "lang"]) { + SubsKpCnt++ + print "Info|Keeping subtitle track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] + if (SubsCommand=="") { + SubsCommand=Track[i, "id"] + } else { + SubsCommand=SubsCommand","Track[i, "id"] + } + } else { + if (Debug) print "Debug|\tRemove:", Track[i, "typ"], "track", Track[i, "id"], Track[i, "lang"] + } + } + } + } + if (!AudKpCnt) AudKpCnt=0; if (!SubsKpCnt) SubsKpCnt=0 + print "Info|Kept tracks: "AudKpCnt+SubsKpCnt+VidCnt" (audio: "AudKpCnt", subtitles: "SubsKpCnt")" + if (AudioCommand=="") { + # This should never happen, but belt and suspenders + CommandLine="-A" + } else { + CommandLine="-a "AudioCommand + } + if (SubsCommand=="") { + CommandLine=CommandLine" -S" + } else { + CommandLine=CommandLine" -s "SubsCommand + } + if (Debug) print "Debug|Executing: nice "MKVMerge" --title \""Title"\" -q -o \""MKVVideo"\" "CommandLine" \""TempVideo"\"" + Result=system("nice "MKVMerge" --title \""Title"\" -q -o \""MKVVideo"\" "CommandLine" \""TempVideo"\"") + if (Result>1) print "Error|"Result" remuxing \""TempVideo"\"" > "/dev/stderr" +}' | log + +#### END MAIN + +# Check for script completion and non-empty file +if [ -s "$striptracks_newvideo" ]; then + # Use Recycle Bin if configured + if [ "$striptracks_recyclebin" ]; then + [ $striptracks_debug -eq 1 ] && echo "Debug|Moving: \"$striptracks_tempvideo\" to \"${striptracks_recyclebin%/}/$(basename "$striptracks_video")"\" | log + mv "$striptracks_tempvideo" "${striptracks_recyclebin%/}/$(basename "$striptracks_video")" | log + else + [ $striptracks_debug -eq 1 ] && echo "Debug|Deleting: \"$striptracks_tempvideo\"" | log + rm "$striptracks_tempvideo" | log + fi +else + MSG="Error|Unable to locate or invalid remuxed file: \"$striptracks_newvideo\". Undoing rename." + echo "$MSG" | log + >&2 echo "$MSG" + [ $striptracks_debug -eq 1 ] && echo "Debug|Renaming: \"$striptracks_tempvideo\" to \"$striptracks_video\"" | log + mv -f "$striptracks_tempvideo" "$striptracks_video" | log + exit 10 +fi + +FILESIZE=$(numfmt --to iec --format "%.3f" $(stat -c %s "$striptracks_newvideo")) +MSG="Info|New size: $FILESIZE" +echo "$MSG" | log + +# Call *arr API to RescanMovie/RescanSeries +if [ -f "$striptracks_arr_config" ]; then + # Read *arr config.xml + while read_xml; do + [[ $ENTITY = "Port" ]] && striptracks_port=$CONTENT + [[ $ENTITY = "UrlBase" ]] && striptracks_urlbase=$CONTENT + [[ $ENTITY = "BindAddress" ]] && striptracks_bindaddress=$CONTENT + [[ $ENTITY = "ApiKey" ]] && striptracks_apikey=$CONTENT + done < $striptracks_arr_config + + [[ $striptracks_bindaddress = "*" ]] && striptracks_bindaddress=localhost + + # Check for video ID + if [ "$striptracks_video_id" ]; then + # Call API + if [ "${striptracks_type,,}" = "radarr" ] && get_video_info; then + # Save original quality + ORGQUALITY=$(echo $RESULT | jq -crM ${striptracks_json_quality_root}.quality) + fi + # Loop a maximum of twice + for ((i=1; $i <= 2; i++)); do + # Scan the disk for the new movie file + if rescan; then + # Check that the Rescan completed + if check_rescan; then + # This whole section doesn't work under Sonarr because the episodefile_id changes after the RescanSeries if the filename changes + # Should look into just using a PUT to change everything at once instead of a Rescan. + if [ "${striptracks_type,,}" = "radarr" ]; then + if get_video_info; then + # Check that the file didn't get lost in the Rescan. + # Radarr sometimes needs to Rescan twice when the file extension changes + # (.avi -> .mkv for example) + if [ "$(echo $RESULT | jq -crM .hasFile)" = "true" ]; then + # If we lost the quality information, put it back + # NOTE: This "works" with Radarr in that the change shows up in the GUI, but only until the page changes. + # It doesn't seem to write the info permanently. Maybe an API bug? + if [ "$(echo $RESULT | jq -crM ${striptracks_json_quality_root}.quality.quality.name)" = "Unknown" ]; then + [ $striptracks_debug -eq 1 ] && echo "Debug|Updating quality to '$(echo $ORGQUALITY | jq -crM .quality.name)'. Calling ${striptracks_type^} API using PUT and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_video_id?apikey=(removed)'" | log + RESULT=$(curl -s -d "$(echo $RESULT | jq -crM "${striptracks_json_quality_root}.quality=$ORGQUALITY")" -H "Content-Type: application/json" \ + -X PUT http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_video_id?apikey=$striptracks_apikey) + [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log + if [ "$(echo $RESULT | jq -crM ${striptracks_json_quality_root}.quality.quality.name)" = "Unknown" ]; then + MSG="Warn|Unable to update ${striptracks_type^} $striptracks_api_endpoint '$striptracks_title' to quality '$(echo $ORGQUALITY | jq -crM .quality.name)'" + echo "$MSG" | log + >&2 echo "$MSG" + fi + fi + # The video record is [now] good + break + else + # Loop again because there was no file + continue + fi + else + # No 'path' in returned JSON. + MSG="Warn|The '$striptracks_api' API with $striptracks_api_endpoint $striptracks_api_endpoint_id returned no path." + echo "$MSG" | log + >&2 echo "$MSG" + fi + else + # Didn't do anything because we're in Sonarr + break + fi + else + # Timeout or failure + MSG="Warn|${striptracks_type^} job ID $JOBID timed out or failed." + echo "$MSG" | log + >&2 echo "$MSG" + fi + else + # Error from API + MSG="Error|The '$striptracks_api' API with $striptracks_json_key $striptracks_video_id failed." + echo "$MSG" | log + >&2 echo "$MSG" + fi + done + else + # No video ID means we can't call the API + MSG="Warn|Missing environment variable: $striptracks_video_idname" + echo "$MSG" | log + >&2 echo "$MSG" + fi +else + # No config file means we can't call the API + MSG="Warn|Unable to locate ${striptracks_type^} config file: '$striptracks_arr_config'" + echo "$MSG" | log + >&2 echo "$MSG" +fi + +# Cool bash feature +MSG="Info|Completed in $(($SECONDS/60))m $(($SECONDS%60))s" +echo "$MSG" | log From 46191f19857bfd331d4e175abb2751879040ec7b Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Wed, 7 Oct 2020 20:13:39 -0500 Subject: [PATCH 5/9] Updates per aptalca --- Dockerfile | 26 ------------------- README.md | 1 - .../{60-striptracks-init => 98-striptracks} | 4 +-- 3 files changed, 2 insertions(+), 29 deletions(-) rename root/etc/cont-init.d/{60-striptracks-init => 98-striptracks} (92%) diff --git a/Dockerfile b/Dockerfile index bdb716f..45aa101 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,33 +2,7 @@ FROM lsiobase/ubuntu:xenial as buildstage # Build arguments -ARG BUILD_DATE -ARG VCS_REF ARG VERSION -ARG DOCKERHUB -ARG BASEIMAGE -ARG MODNAME - -# Build-time metadata as defined at http://label-schema.org -LABEL org.label-schema.name="${DOCKERHUB}:${BASEIMAGE}-${MODNAME}" \ - org.label-schema.description="A Docker Mod for the LinuxServer.io Radarr/Sonarr container that adds mkvtoolnix and script for remuxing video files" \ - org.label-schema.url="https://hub.docker.com/r/${DOCKERHUB}" \ - org.label-schema.version=$VERSION \ - org.label-schema.build-date=$BUILD_DATE \ - org.label-schema.vendor="TheCaptain989" \ - org.label-schema.schema-version="1.0" \ - org.label-schema.vcs-url="https://github.com/linuxserver/docker-mods/tree/radarr-striptracks/" \ - org.label-schema.vcs-ref=$VCS_REF - -# Build-time metadata as defined at https://github.com/opencontainers/image-spec -LABEL org.opencontainers.image.title="${DOCKERHUB}:${BASEIMAGE}-${MODNAME}" \ - org.opencontainers.image.description="A Docker Mod for the LinuxServer.io Radarr/Sonarr container that adds mkvtoolnix and script for remuxing video files" \ - org.opencontainers.image.url="https://hub.docker.com/r/${DOCKERHUB}" \ - org.opencontainers.image.version=$VERSION \ - org.opencontainers.image.created=$BUILD_DATE \ - org.opencontainers.image.vendor="TheCaptain989" \ - org.opencontainers.image.source="https://github.com/linuxserver/docker-mods/tree/radarr-striptracks/" \ - org.opencontainers.image.revision=$VCS_REF # Add version number for use in container init script RUN mkdir -p /root-layer/etc && \ diff --git a/README.md b/README.md index 6bf7440..206f3d6 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,6 @@ Chapters, if they exist, are preserved. The Title attribute in the MKV is set to Container info: ![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/linuxserver/mods/radarr-striptracks) -![Docker Pulls](https://img.shields.io/docker/pulls/linuxserver/mods/radarr-striptracks "Container Pulls") # Installation >**NOTE:** See the [Sonarr/Radarr v3 Builds](./README.md#sonarrradarr-v3-builds) section below for important differences to these instructions for v3 builds. diff --git a/root/etc/cont-init.d/60-striptracks-init b/root/etc/cont-init.d/98-striptracks similarity index 92% rename from root/etc/cont-init.d/60-striptracks-init rename to root/etc/cont-init.d/98-striptracks index f363fcb..e072fa7 100644 --- a/root/etc/cont-init.d/60-striptracks-init +++ b/root/etc/cont-init.d/98-striptracks @@ -22,7 +22,7 @@ if [ ! -f /usr/bin/mkvmerge ]; then elif [ -f /sbin/apk ]; then # Alpine echo "Installing MKVToolNix using apk" - apk add mkvtoolnix && \ + apk add --no-cache mkvtoolnix && \ rm -rf /var/lib/apt/lists/* else # Unknown @@ -36,7 +36,7 @@ fi # Change ownership if [ $(stat -c '%G' /usr/local/bin/striptracks.sh) != "users" ]; then echo "Changing ownership on scripts." - chown root:users /usr/local/bin/striptracks*.sh + chown abc:abc /usr/local/bin/striptracks*.sh fi # Make executable From 4861018c5d96098dbae8592678ab52a662543e43 Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Wed, 7 Oct 2020 20:17:49 -0500 Subject: [PATCH 6/9] Update 98-striptracks Fixed the inconsistent stat command after a change to chown --- root/etc/cont-init.d/98-striptracks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/root/etc/cont-init.d/98-striptracks b/root/etc/cont-init.d/98-striptracks index e072fa7..8aa9ba1 100644 --- a/root/etc/cont-init.d/98-striptracks +++ b/root/etc/cont-init.d/98-striptracks @@ -34,7 +34,7 @@ if [ ! -f /usr/bin/mkvmerge ]; then fi # Change ownership -if [ $(stat -c '%G' /usr/local/bin/striptracks.sh) != "users" ]; then +if [ $(stat -c '%G' /usr/local/bin/striptracks.sh) != "abc" ]; then echo "Changing ownership on scripts." chown abc:abc /usr/local/bin/striptracks*.sh fi From bf014ea22f4fae0992359213040496c2c64a4b6a Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Tue, 13 Oct 2020 18:26:20 -0500 Subject: [PATCH 7/9] Updated image links - Added .assets folder for images - Corrected Synology picture --- .assets/striptracks-synology.png | Bin 0 -> 13260 bytes .assets/striptracks-v2-custom-script.png | Bin 0 -> 26204 bytes .assets/striptracks-v3-custom-script.png | Bin 0 -> 64455 bytes README.md | 8 ++++---- 4 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 .assets/striptracks-synology.png create mode 100644 .assets/striptracks-v2-custom-script.png create mode 100644 .assets/striptracks-v3-custom-script.png diff --git a/.assets/striptracks-synology.png b/.assets/striptracks-synology.png new file mode 100644 index 0000000000000000000000000000000000000000..84c9af795eb6d559d62c3b8a04acec0b32c31f8b GIT binary patch literal 13260 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 YC}GutPrchAE(fS8YCSJ~`YPyu0Y5#53IG5A literal 0 HcmV?d00001 diff --git a/.assets/striptracks-v2-custom-script.png b/.assets/striptracks-v2-custom-script.png new file mode 100644 index 0000000000000000000000000000000000000000..7a2b2fe249dbf900c5f634e862781c8c9e3743c0 GIT binary patch literal 26204 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 literal 0 HcmV?d00001 diff --git a/.assets/striptracks-v3-custom-script.png b/.assets/striptracks-v3-custom-script.png new file mode 100644 index 0000000000000000000000000000000000000000..d9e856427753cec506e1825b8166ace6ae138c6e GIT binary patch literal 64455 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�S?`pI^x3FN*5)NFfl6-oFQzzd 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

&muz(RYAn# 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 literal 0 HcmV?d00001 diff --git a/.assets/lidarr-synology.png b/.assets/lidarr-synology.png new file mode 100644 index 0000000000000000000000000000000000000000..d29fe585e811b3a7cb69127c44abe819c6cc0d9f GIT binary patch literal 13074 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 z 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 H-Io6kvePe~ literal 0 HcmV?d00001 diff --git a/.assets/striptracks-synology.png b/.assets/striptracks-synology.png deleted file mode 100644 index 84c9af795eb6d559d62c3b8a04acec0b32c31f8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13260 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 YC}GutPrchAE(fS8YCSJ~`YPyu0Y5#53IG5A diff --git a/.assets/striptracks-v2-custom-script.png b/.assets/striptracks-v2-custom-script.png deleted file mode 100644 index 7a2b2fe249dbf900c5f634e862781c8c9e3743c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26204 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 diff --git a/.assets/striptracks-v3-custom-script.png b/.assets/striptracks-v3-custom-script.png deleted file mode 100644 index d9e856427753cec506e1825b8166ace6ae138c6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64455 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�S?`pI^x3FN*5)NFfl6-oFQzzd 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

&RaYSICo74yETWTc2S5L} zb_F2PKur5}?;Q6mrmjpNwf4O$W=c35gfgQpe0BIS97=FWvZMRDLr|8%0Dp$F8ql6P z->~QGv_HtF`V@Ec{-z_raku@rBzW7ySfx;~j=lWkR@N^ZT((7XwXcQr>`t<>_fy|$ z#t@6bWxGw|c|C_U{uxHDnc5X7Ch8Fl(BCB>0iB$Lxp=sroj1saDaETz8^H6eu%Yg@ z5W<5SAS(>(ZEdLuEE56Z#@t9Od4alxO)R;kCCx_MTl4k_S{y{~CsqO4t!k<(jJUU% zSVpmH-0%z~THa$?EZ7HB7ZcBhMjcPk zh&QCLr1voOa+WYs)>sj-v(5kSa+LAmq3lu7pJ}iW;qGgjKe2lTJf)w$(}x^1b>{ge zbGET=3FQrnz%Gq<^pa3f2}D6uUpHkunKzW?sm>~?&Dt^JB>Gd-JKbj{h7CweMjsAd zZOLL7g77OVQP<{%FfH7M`IVa&FoK)!+05Q>bKktxB;leZWm5zEI6-NLVEosXd$}7MieyG3sh!=SX!*fG zmaG>`^rPn&nx0iU|N2%JKu^V?0PjBjFBM-F+TzqoTipK7`A=dRL3_FSUlV1iq-#Zc zE{`%PfQ_PknIx5BuXfrbY4b&HMc?p#lMJ1m`gwLmn5)D-6{_Q1++zhJk`@Hz~Q z1)n~B%CK0hwX(NYdTpq~_<@cNJ(b&0dG}SEKCNlOIIK%5Vy6(rJE21OU4l8B=6Ly4 z=KSA774~V!{%Tx%6WtQ=sKOOokK!pbBDs<>EtM#`jlaL5)~Md}Yr5Sv;rpwQgYBkq z_dCuPJMQnUY|kHDm}-p*QBCPE7d=xV@qQd+hyPX{?!Co!KA1Y*JBZn&qhu#u^=v^} zw4F9Fi?LV98~_$esmJz3fCAoX2W@WmTFGh53QQE5#n<9p%stvod)ObCE=J<1$nMm= zd0jf~6TYyMO01*>d>MuK#Dnn4;?vtVN8Ll{xO^MGStMHV{KN*ObD@v+Uu_+7M!hsi zV5ghO&lcod`g2sXle$jW=qeg5Ck=W3dY2H_(xT~={xSw^717!bpccCEe(s}}r<9Pd zu=siQ%}$_nExHEn1h>Ti>6wrRliZUS{Gm@Df8p@zfZxZByMp`_RzmEyzXC+*$JNXvCrA0|RDCi;V z>4#vVb81{R@~M#2*CdOp@T?7?mW?;38rt}Ynq!yS3XeH zt85ecyEL@a{!(+s6=nnl(P_p&8G@;H4u9|b39IRkTT}%IhYrDd- zD`sXUb35EIf=oZ$l=&wf2`$2?hy|Pt6PCt_iqmK^6zu}Jkn)Bby{J*lB;HRt+vCL^ zjSM{Ft=~2>|8C#ab{@H2ihn)*_QrUw z4dyr(p4b7S>lemu`F5VtTtRrRi_Y6Nq|qW@DAY3|A+MZ#~k&d9*)ijdwT|Dduv_4_rm)4{US^^ut#Q>qbNL>A}zotu2<^q{hiz6hG$#yjim`Y%4} zru2smeW9v;;7wF(Yfl1YaA-&Ava3~jACX`S;k6!pEuez175YAaWV|9sg2xBwsD0PS zO}$ALPtljAz>Cq{v!U8aYJB>om+mD5Zo@s=Aj+YdIMxK@(Y6=(izWGdzpTIhj}aD6 z>=vf}V-lV!gjIaY783*atB+@Lk5yqF?N{(4W`#u*!|^z9idzMy`qyIApu~G@=;Q31 z)&D`>TLs0{eeJ$DB*8kkySoI};0Y4kAy{yChY+-(ad&rVg1bY2;O_1aXxw+_{eODu z+oyJ&n{%p8U#{wlUTd!EIma`8&ofjCs*~iF9;(l$4bf2!4=PVWIs6DZ77~zOSv%ON z2Pxl;@sYOU`iG>C>}&b@*WIcRl_d(P8yeuKX=Bu8%u!z3(7IJFN1|vqFa%rd>_^jn z;u#)RUYvjHIYr76VlGI=ts=;JS#J%t+5Kj-jsr|-M|NB(rTL!5pN=<|L%h51uWdIb z6Irqi%nGz9Vr+O z#`K(R&-~|`o+@W#kMhKvnO70zSCTeI13XY7)11lYgqA30(sS!mq*SItkw(0KNqG$>+wMgU?R3E5sEr z=eJ5ovM;WrYuuXu|tl_^*`IHmEXbEqaUsNyrM>q3oVEY}}Pn zg7s+)hRAicF+p|kh1v1f7cNq}M{0!E zk@JgxZK}mjD8&bz66MeG(C$(^`k)LbdJ}Sy5}}I*;riPw8UC{8v6?7SO9l}ru+t`x zaux3Ge87&E;%CSn#~8FX?i_AN49%AcY3jB-c2wy9w~D$wSL&TD3&xBy#C(% zX2iDqzBd#9Ho?XaBk!jLusm5RoJQ=kA=$z{vBt4-bb&-3Bq}d5nvpA}c;v_A&ksvU z(oP?QM9QoiXX}gejhMjCDM-(>@`DwY(Rq!&S#j&j1b?^1VKpFGJ%7X707DZ1>T+w( zw60rJMxc0j21|IrxD);czhmC34&6nc2RvbAS*%278W;H|j%E>e6R*eSXIC zUN|k{dz~|9=j{xYkx~m}lF3O8SfFZfz#)WBsBISY#KFGs?jceQ@Fl{Q8VJJ&)vfGK z;k;$=z^AY%WyUi>MM0uMir**|3__<>a2;C&=UgNQ$KgXtgLE) zU%b;ky!*D0UEw*=qq-hOXzBwpJ+qV&gvx)ftIi1V>KXwct z1?|CAZ;B!DghEATx4O_EEjm#utVMIyFgIS5-iP%!e?C<$Rgr|4KuoA6wGUYvWjyXq3%6Vs_ zpId81>M4U}FFLG=i=v5Ow3%zBbDRYM3t6Lqgc5H>4mc$11nIo_nt>0;M?qW6lXEkL z$uk8C+PUkk%X*5&x{wjL!b;Q=m;*Pe7Zp=B2xlIVPrB6xWrOk<1xp-obh&Z#n8wmk zHs-#ylPGO?Tp)GbJ9{Zqi=epyXJ5^fQsS)1Pju?)1;y4rx(?g(WtNIXHG}F&aEPl_ zI|>wiv}Eh*ng#N;l*(hlkTG|sTM%r{KaH`oV8B})VB}{GKNxWSp=+X^s6x(*5dSc5kf~7H5dcK^ah70=lR*t<7~CM zhMBeeTeqXHW>W;ULP!McbET94@gqWuguht1-odqbM8Hp{6tP7tQH>#k*0LAJ6fcOe zIssKAEt-%ot3E9v9k=btcjNr#+k*)D?NVpVdj)NgPS7wctAQA}*0w9Zw6VqM1NVzX z=`Zn+rn_R2QL%g;ii6ER!8VyFHBOw4@(4s7xSBf1t&BH|R#|H5Nt&MZRmjyv7R)c$ zno|wSYmf9H_k>{kZBFJpFA-cDIoPy_04WwaC41n8ti{@lKDQ6JV#x`6vtg*{BH)R_ z(o#f|;;f|2`1aG85LYCnf|3?oo#$gIeJH-^J|AsLAw0DX61Wq z?ONvBr358cOK%r!aoaIJnkIR<-vO#(>`TLllsSS>mhrP>YHH&JQ$noVhYhv3piHJt zrsX21OS@otX9YP9))8NYr39RTOJk@~v5CWJ;gs^&J3m5i=LC^t&IGAe!cVYu;oXF)I@ay5*DAH-o9O~E<`3>l zs#Y~L_aT?8=jRnx#db>2vigY9TeA)o!-gNBvoOkvd&dD*tNv|~a0+Inkh&3gA*4B0g*&FOo5Q_k);9i%boolNHM z?bGT_Vd2~-r#|ea--3NaIA9bKZQ<`dKRhd&sk&TEZ!E;J7ZA_o*dn84oSg(D@gIgM z{Qdz>?Bs7M1I-G}Dpnp-&|%OSVbJkEl@bec)}=ZeJq18MJYRCr8s*54HoOu9`_yMR z{TxB|8ic$}5L3C&o^|48YkVrozoH2}#dlV5{PHI#Fj}#jnIGFko}ATU-q^YJ!SS7? z?ws*FzhPu1b7vBsW#l_)97Ae)D^-!%qRKbogL{awpO=7jR8IzxxpQM`Nt>WsyopZ&Lu_~p5YcLaoqTf<_VnC&=b&7s zwSYn8#Z%5c+$>Oqa>V<-otw7LUl{LFb5Jb3OyZLdcf-IhENkCI8Y6@Hj1Y$eJdh2` z4YgJ7Dj4arhGim6((3|{!H>aDk7-IivhT=nZkulfb0xR%UWTW!z!;kZ*c;-D=wLOe zbJ#u=Mn3f@&&VTFAi;(VOuv$SryDZ6MCkTQe=C}_o6vNyQpzTae&>Duy>As#W^2T| zvI2m3IZ6$hSN;-E9oiKD%#dRV&RfQ^h?W<0zU`DUjc9+ri~{-2L4&%CftS0WMx7K) zwK&YmZMzL$T=y(HeV3o#cC_Rw_7zCnXZ>!X&9y(UK)oidc&W65^op;^ywfw40~xGb zN^hm7{Z%FMq`<*u;eDu3vmFC6L6apW;gSw|*+7y@svXCb<(BW;4I)CyBn?f_-tL1b zSV*Dz#N?vX#YVeB}}PhlZdMlfg0&#-I3wQK9|r0-A8_zoCJ+zpk%Qpn8!DbG+aQ}dQquza7L zoJFHmXyw?I)}$k`9_ju$0Yb!@RlihUWl7_aAfAVTsG`fK%)C z20a5d%Vo4oqVQe+lGD!(QWqkvlbHv~UdT%gAKKpCP|5uPikW4#dAf>C86G;|@RpGd zf2vp3Z>_8vdv-L}#Zv|y$A0-L307W_4d2dRK^wFUgQh8zm1hv<>p#x1Q_D~au#zfo zZrK~-qDFZeKa~4JyRDQxA5yXlVpr<~L)K@J&`v+)C@q4nA#y~|p?T%*_h(p-(zX*E zHL#$8Ka%pJiZ<&l1iDn)4kZ&f-58=lrSN@nJiMetRMQhRm+YtsUCT6h%F5n= zPA1~ze5_c8&aF0!@A>Pi_&en?bv|jKhs2!ql)q0o7X0%N{HU_~6TFx5Hr3BkJ0_Jb z`JAZVaDc&EIH7k5HZ%5%WEkieoUbkGlSJZv*Rg<3v}N}`a#|69HhSQJd-7{xv1kIL zKnBd|;$E_!KAV4}3%Q0L{8vB90PAwMb57#EG23M@6%XmJd$dWT0}Ir1WqXe^hk->2 zZ?Lx}u?ky*glsw2u1Iv7X8-hpZsHr#D(@eT*x-CvAjgM#pEw+6Sz(#?n!z!yuj`r?{l+7clH#v?&EsD-7uO z(?n5XF(;|E(fbijXJxf@ED;vHL|{cJJ60;4g2M$w;%Awn4a8Xn9U6=j_K+oFG1-Is zdxy=1T7uPuABm6WCNLUO!N4^wM-qnt6w8UF)8VO%=JG@WOhC*;mgLqh~eq%-pd*9?(&sQDIBsQm6PX7J~!T|*hHpw-$PN6{I#&7?vL*QZt)f^{h zl?mmYNB=X1Vp5?WDh!8|pAQMAhR6f$cuCmzv~NB^zu5ba=*#c8g-}~t>yTS!jx-;G zTA*8J5lE|$R^klR{;fbJ|1SM={41zM^M6dZm_(z8Q6> z8%dIom(!Otfv`gWn)|7HW{$pbtF|@R6;{=&ir_x3vEQKIaM0oWE#$ z`04Rl%vk2NM2@G@QkIp*>r@zY!V@6&2V@F!S3VkFg?;r{fb|3bYj#Ynuju6lvoa{L zdr3)2WVT{keK)8@b)j;Nt2Mw=%idsa4)3Pa(?X;w&Ob^CMD|<{g zJ)25`m!tSdD``&(YpT|TCq5`m71M`(XAyZqIg>M*q{^pxWnVNOoobz$mUwm3dmbec z-A!|@B{Gr6kznK*^AM@QN$gV=9<31c9QQd{w_ulIszpg|BFM<7p!$*KbINqL#xJruT$2G)a>n z?k}JZ+9DnfQ+%kWqzJ{m$_sfPC^i(y_=up=mnA-AIc20>_t?1LhkdX3zTo8AG_2>Z zJUvkA#uDd`l>+I}3MbszuiU=9P`>$;0%5zIFui(sa7C2{YaRAjM!3E7o)&DLEP zM8^ub7DsN355oZV02JsDK9t^#kL%iF{iC_C5jpm?i_!`S!1=-vQC?Of?Bo)BZ@ufO zcM;V^@BQJ}JHa~yPxrF)eMp`c0hwDOe;OI!jDLX1Y%e_pwk}5@9#7d=X@+l;YEUum ziJ2|HK&qS6V!%?izlJ!FYariUWA17`zv$Rn&z{D&92Y|J{d?`@&<}39JR(U}uwH0> zg{}Bux;c?W*0N-MZ}k!y^5sJiy?TFI!yT<&-wO}^HPkXe3{Of7^ltU+O?e->a1wGb zTQB(0>tR#R>HQc|RBz-Y3F`>fWTMtTa%L|yCCVzV@7*(5=Jz+xQtVXY8EIb;BEC|K z(oMJNS*?-e3wn3|ntVf=2`}kTB-6pE#zpct6|u2u%O}t(*uD0P#5UAL;`6SA`h|Ej zp!?jdHZ;D~Q`gJc*x{6&IG&6sd@RazJVRK=%>pfo0V8!d9`j`Lt6`+-VyGi`H3~Y5 zx6#5zhebKZaBw2#GQk!GhMC|C{?sgTzxLr!08|D6v?HSTtkw#yjJ;X=tAtQsSyJNm zDzn5XdgczEf3+a)*C4t#`C5Z_ML;>kMQ2keH0)f1_h>XKGoZXESS7w6DB0Kw)Ea>Sf@uvZuuMEpmwHX1mYt{Bcjk`-=H8b$NFr+W)(`h(Sw8y0g z#zk^_Q*EPu8wLXB)~$hvUn8w;-poIG#;%$6T;Y|sd-|>FOz_EK@-DyWS7fn9q6_2R zH1s@>Vnl87Y)aDG%ms}SP4ua_9aLpQenkr+tt5lr!vzn|^-FVQi^Y()F$p>_3KK9_ z=W)D*Hx^5_><@?no8MEJ=b_(t5#UA;d)+M9hKF5{C}7Cee=JH#7(?a7E% zV(A8ILaBhvAYpb?-~QBo^3JbmSb8U4e`f!m1&H|%PUZ8-`~LDj6S;w5sZ zPy2FvMe$H+JN&``v4is2mT>U*Hkxl_^72HIia0+wXTmw*xipDj;cG> z7n^B`a@UX6^_A*Bm3G73903+H3r;b?f&%CS;iT&Q>k(Eu|D$4ls*8)>A4E)k{&GBHL~SZS zaTOSzaxuz0>SY5X1PV2|u7Yz7w%WlFV}s*BrWvOUITjjgLjxvr&dvRLbK@q0pO@5M zs98B!Kp2~uf!;n2BOmj~@(V^^3{7I#HYDA1XAEDfb7i8L}zXcVvww3u92b(_df6BvYplo|q|}9GMW79Vd}3G*pB;`LaEQ5a^@zVa2RIO-pp2Q$ zV8ZsD?LvkMPWlg5=>jnYoZbC4XFRE;(MXMsb+gkfH=2~J1@reciyvUgOv~ISC$x_e zy6_A}3vsN|Y#|~FZFtJ<_7+3CN=YRO=`p*zaX|~$OHO9`|51w01RLzAG924J!gija zsPnGWMPX!2-B2lPM}wTQ^pO!7hQ!+%V1DZ&r)ZWX9^KAc>6U-X9(I-)gmItD>H(xv z5y^8vw&sjnwcbJ!(}T;@rqRm_0|%tkF0_RsYw7eeKf8RmKn{aq2%A%H4e+MH=KHKC z5zD~mX0**yjj(vUHo(**k@S5~>(AebWb&zrueq93hK79m7Jz0GJmam~?I!Pc7K*r= zAV&WH4|EnUB>jiUj9rY{w7aI{Vxn{Tj0+P^XF{{rIZp1J1>I;0x+j{5q*vw%NGao7|Hl#vXsxLf z#A8de?Q*2}Lq^g_(?%!`&ESBGT=IU&@E$fV5mK|WxsEiJ>J6Z6$S-jI6eRek89Db1 z#EFFhDUXi4vt8(*l1|X4tR;q<{KM)$WYkuxSDPWoAnK(?|EP8&(ICyb@4zmiIHOJY zX~|XE`kDf}kdf7Xni11BBbuCt84fV%cz1k`=y6LFHAzBLmR<8jA)Wr#SxVcWGBY-@ z2_7J50-(#Yi{2y5V79V&0cS~=AlwUVhpmjuYTFB7d*2QQQ3-5-ro5*4^2E|3x4I|} za$mY8f8OC6b8;VW=)E+3NmW-!O{hi=rJeh`yw1?|O~4-Jd#npi-XwPmk@*_BF!wTT zcfjMr-SSH&Tdjn5SFwE;e|`W6qurYgtI|5e zz`VB*`p0mi!|2OR8tVB^1mfcVSUNyY|Nj}?`2UY@94VvEFVgN2UT!uC3l3&+tonb9)vFvIN`NM<*|PQ>@i37T`(QyRY^cxWA7X{qZi`b%-YX1fo9|^zcB}8eO_tB#2`(7|IFRf!I&9K$W$0jbDIf*`xh*K%TE75%w3G-haN1(R~K^ z79h2^9hr;jH4$6m`bY5pi5T|->-q5DwPcQ5>^}b4IK36=`R=MiEJ`=WyG!XcDPx>j zsP)qrAmV9X1rgy~HP-D%G99SwP9_`s;P2*&>QcxdeR$KM9YM1m=JN6r``GUu`&FNi zV5{o*n?BLN@xvJ*Szf(L-TBPF|=4-OB_`=S(v@X*rbk|<^ z{ba~lyVj+DpN9-F7W&chad-Z$q|ockm%FlQm*Y)m=o=L3EWqr2jKlovFdR?B5Aj)O z_MY-Uh&9y82N0c8`r3bDC*T8t6o+YSY4hIIu~Tq;maoGPcHfi#=+J!J3SIBlzRy5s zj-6Shi^yzTGJ}T-sugZpY#o;>ex92j$G`NjBh0#$#`;gZiNU+iohIUWEi1DC+Mr0E z=ktjSf1{7yVvP?bZ4I(a4b+e=2DoEAa9clno516ntB-a4Hwg1~9#;nDC#wWe3B+In z6VV?xz9`d!w~|~ku9@Xur+VU#S|Qy|{bJ2UfmeB@QM2x|vAsfm!DIHsw70ze{5GTE zy+`Wan=ZH1k?1O|zDic$hjEf2K6Pf+C8&Bp@>f0h0>)rwGX^AO*hG=i94^GG{xAlI z$PC7M?AVc|s4{+(?h~+492Jk19bW5ymx&bBwd%+Esd_3YfA~{GQqVUec^UpJE>z4v zkD1t(bP4JmCkojsd~dTO`X#b_VMumI^LiIL{FvT@aKe3-B&OZi2iCA)qTc(IFV98T z0)3i2?(@JRBnK3YRLRMl5$Q#UvKAT|w3f%6J=x}7MgzSR!+!YN$(z=;s`4JjFiuh( z|1Lzl9o?OVRE4q^0hekjcS;{1WjVuMF}v7kj~hip>;Cv&+6_@~4&(3=fD+UE3gSfH z${0GlYD`q3*>^0nJek${z`r_$A*lf9?7ZC?K^nRB-)J69nY2p^4Y6o%GD&+fXKRK= z`2rG;TUpe1Wz0it>l&s4nX?U)ziw)$bKwce)}!;$yFcl3R~iXQ$-%y#tCZR?5{~#R zsoe~$B`i!zBvyK|hV@ElU=X)V$N#ZUc0gWKvH!U=|C$oxlP>1+a9M>=4lOd z*y4i@LRK@)V+!6l8sf%RI-dcO0;s;1$Vf3|Sc7a6R$TM|ygCz?kXq5GHU zJJ(4{pX;fw0G{I-KM5g-(-zc-1&{@9c;4_*vKjgUJynA?Q|e(mLysLwUzaM$vhGb8 zG?=~6qUC)^{mItfRT+1FB=bXjO>uFBx3p#s+P7Y$s#LnWo=Q2ahK8Fnbmng56@@qt zs8tw{f}S*}I864KNAbPsV#rxfnhLstNaeiOb%IJ37EJ0mbtMpU#|o+5b|bxDy(a48_h z#amu+NjP&_iY4Z&Kkszuo+T5BL~5rso{MC_U!8=N$?u6Nh~#g~q6X$@Y zEE&b|@3zdNVer+ZA5}4v>r>d!UY6)w+Q^wHwuU{M*ym>XqSa*_g7kS~O&Y3*D@Wt? zIFbpIJPRh{RgM=a*#&$Mw`;SS3o}NV2!;`4!N5WX=$6)L&C-y4)qP-T{Aw=$u`?tT zY^1PjrmpOF^~srt)MPF6%_ky*P>*H;N7bw1(V+P+&Wj=<*esX5V7=$Wisomaub2Eu z{K8qyH~xhhmFMpC`dV=9$&_O*fEPQF6t8~6lkWQpFy}MNv${R43TNc`8Kw$rOjU-3 ze{cuBuzH>I?e3+Dz7vbK!XVzfMDKzxwkb*cx#3z%_^GWB*ls+=t$1`}(?JyD= zthK6Gxj5-p$Mew9KWvneH^)3E`u$}seG>Fvs#`&}f)q{tt`R9rB^A66P;PyykYjr5 z!!~%+BK0Tk=e$uoT$3pg(*@Tq%tc+su_{G_)rrsH9r;)rU8UFykU~owbL!vZnN9q`!rPs_?K(7;`FKcYaVBr2 zDpK&Hphxb(m$K$$Ue!9^e7q&MiYxE9w~~*?Sg07_G8=#WXUTlb$Mt-u=gGFwK5Bpx zW-ePr6EDHZhIKiX9!McExmXDE>rsk36E_sWb7f^6O~H)+->{&C&+e+MD1_`NB0 zDpEHU4dD_x)Oe}U3K;)DNG(S?Zt_@vkN5cY+U;8?@)XD@W(Eq zz77h)h_6H;aM*;uVJ#%09ug~Nx^T`QhU+4_yncH0>ZnQ8X5{*@Z6#N4TtZ(0G@5gc z#<9a|V-3rbgfC3`VF79eO87Z(fKf6qGY4)`AhKE&u=Hx5U#BFJ-w1K7}I!hcx!0?;e5pN|4%p{3)7c6 z8gCilINs;)_Yg;W&P>C4%4-PoNITDN{^2z_>6_UNi=9u*n66y@i+0!+X%P-J0(on! za8ZQ1H!m&u+nA23^g#JDQwetu9chY6Z=2({64?ry^D1EAwyakDk!PRm;ipZ)g!WdA)HE-i4k;DXSoi|6yLrO#HGQy?|+3%@8}{ z0msSmPd!9sAbKtYD?>6MA>ERIk0{o?7Uf1!b2EZ=s;2R>J0=weQX1)>u#5z`w0g)N zE;=|U?gmpC$?{i-FQXIktuDf{I8Oo6)83dc`PZq>*9}``SryM+$Ha%m*M!EmDKpDN zquSDD2#DtRw6lZ~pYt`NaBatwtu>Rv_u1sbt~?lfUVM z?HEWR0*F6%=Fd#v9K~C4)8l8Ob!C@paa+gkjZaLW@J#^+>w;B{?j?kSQjnj-D;qY2 zd^)K&>U%_NjU7`TOFs=BRA(rF3VpD}iaLI-}p6OL?)g|e8~7X0S*TI3Rjk$#K|>_xp#+~H$XS#axP(O zpp7Q-B?To3s_#&A%GT}cm=0K_$1Kwi%Vh2Hln_HePrVGChX5W zb+U4i-G4+`WIln3ysptCe=>ILyE?^E6)6nO7H&+$eoSFJJZ;5=9+!@>WbyJ3w1|05 zm;zLRb1|9KgaApeY`OkD6hOd`Anm`Ygu3AD8iAJsK!v#5ica5NI2i_Lr3 zFM51&l_wvkc|;sOEk|=li3$wUk5$3L>F$sl=mzXn!jCek5B_~49=s;DH?p4h%m#@2 zqzm&(z^{d5jfo7>ZYq2{HsKO$g@RwZ#nEXd$hqt4iPfT54xwe{!E~QD!0aI;Be(!!&8#%d^r+>-NTLgMUOYu*OsBe>EVaCe{j^lr=f=c;7QyCPY8Y@Kj~;hJ+)-h^ zr1E>Y6brS*!e#**F}9!chVo02Kau4|giQg^q|1VnQj~@Gf`6FsyPyD46Y%++j18z_ z!g!~@viGP4duJp)DFEH#n4V0cWKW#!=6U=&OxR7_W|qvo!L@r*OBr|A-0VZYQ9s0i z80T1rDSas+J+*{kpYq^_OgffN8;4|?5|UFt#Z+yA>?lOK1f-6)cs!j=oevNZMwf#O z`VTvT;eSb;SuhdVEZaeMuDVUp86L*vpB~w(2Z~oUPIyeAk6l^_?R=j2{ZT(=c_^Y4 z@M6!rSRhgT?6_eqOD30{Fs`5fGk;5tvPI*BsD2=ml1~^LE9gL&V}Y~-%b#SfxBk+j z?Pb)VF8+0|M(1ZjSK$us^)E7SOBAAuAuzJ*TF5 zbv6%srs?=JJlt+R>z*7Bdo^}-DJyKyKYyR-!9HV*4^)>Ll9la=rIHH^kHV?u>nk?R z_ZxZfaPYv)I1X1QZU^jWk`Y`i*Z9gnoiA9iyO?2q?)MS|V^+Bb4sdnm>G_&pEIX}9 z(ff{II-zcsH%$#z$ZWmhCo2skg2vmi8S9uNA)o;mGMURGcfRe4rm#P2IH5DZQ_QI& z`Q~vdHUbXgT7_})p>@s^>^bNdrq zRX~ttzzm~PVyRj1zafGcMx=*6gQSw2>3-B{*b}3LUT97+G`Sz4u7}KBs_A22E8CI+BsNfi14|Av7-mT8q4s(OLwdJa7cUA6BhaN^OH(;N$ zDi>;15oQR-_wkfFDN<9Dh!+qfklT2Hh7kC)+Do?Kq($Z*SKy zv7*tO3go*|G1>Nr6Q}>X1}~LLyW5lBj6??{)Y-Yesr#EN$3_+<R;Zz@rMR&Q&`ACKj zINYN%)q|IV#Kw`DMQ0bZ1Vs-}wI~xdb<>e!w?F)#oZyT}BG#WA9mnv)?Jmtv$9Q^T z!ziE`91uZ4#T?n0pH76%&}F;T_IAzGFm6qTTX}G}zLNNALH`||5n)ON9>9!@kgwUe zQ7fiXX6jvNniceTB~kJ^iv}ILa};8XeRw^zMiOOuM|Dn!IOXE}SJj3Fk1-uCJWW$R zC4Gskx<%73>$s*|I|9jKO|6l%L|7GY>Tv&-6P*ylJI}iAkTVD-o z7KT1)(m%W3UtrPxtE>1QpSaTpI7_)AifQOGZF&EX(;Ir_P(_oA1$sdkdQ*AJ(p*vP z51_wewV`Y4l9;0S?PGEkR<%5Kma6$uSB4@jh-ij@QDQ8y*mpK#L~^GGni+LmIWZgj zG}Bcf?!J*9x;oKY-660)r&;iB(Ei>2_VjrF@p1n`Rw-*qy^zhTqlgA|X*|y-oexkX zYzG<>nqRI8GPM-d@cGA5{7a{l>N=JP^heYXkq4NL2d$f!Xy8Ze4Z2N~o=Mo+A0j-S zNmR3Z5Z}4&^%PX8I3p1+J%MGn4YlG`O2)7v-sL`@8XCV8FT|-os#UibV}Z!R#M^k@ znU9rU9Kk+HFVi3~1O{e0`f?M4xk|{K8v?(bRvOz(2<73!t`9<1F)78J&}b z|5B3g*-?haTu{@O)=;CDq0F;_wxC)(K$Tau$*F2dKC@yOusXykOs)o>y9q7_7l!t+bhmoG0|7X848Fy$Mc$?$K$gS*fbP9#P|b8E^~V` zWxFi3W*8Y-3qEuF$WpBF>R^$HSbZ9w}LNCFVprh3{Y&8{8q4oEQEX)$Miii+kC zp7|}*+Jrf2C=`v+E6lOk+l=pYB-3`chD3i+*3P5{MB9oF&|TlZc&YF^A6kpR_~sw% z!9P8#PF;Qz;~mu__)7R=^xl8)yW}PF1p})8%NxF`du(eLN@^fsAF0mlwhoRSLYC}Cl8S*AHs5KK4g zz8ka~5$L1Dl&!gATo1^E7yRHJ)8S_Vh-$wEsxdoqRi? z2@C8T=zj1e^7J$)LezH@>MEw8)6JKW6S&#I&ef{eoOGlng}T%B5+Y&%VDxk>=P%T8 zweA-mi^ZuN8nb~@SoOOlwQ+g7IokNs${-Rn_`XL!I;o{MX2RvQyuMD`^gfKZ7@jw< zE(u(~f5DD?8q^R=429)xd~YQf?oa2HcDhUrERfx;UEsijOHSwtNY7ySUkIYMc4|T8 z>s$Y!4KT9oG>%WH$<& zFX;1!FmST_Y%ll&z0CdnZ0w#-7|z7@8uH}w;EK*L3zjAFn(+JH?~LytBTy@`qWM2o z;uDvHfPul=?GlL^6+8v&X~oOdzvN?y^Kf!B|LIqcy+6FgX4T>wImp8h?SBVPt7lS+ zD%td=r#2njEz@yaC)ePc8B!fkl1_(ak2=)k$0Z8Pv(rNN{x%(yz)x0n){8$M%W;!I zw(V3;U159gz0U`dyv_9H06- znWw8~J$VbZ?~f$bn5nU$J2ktMF-hI${ujr2WEaPDN>plnUAy;R@5&9g=6Bb(jEW^~ zZ~|R6`l8P}qeXk#Jje5s%ikHig3(_giE;mMkV-H}#^7UbxBOkgXuxbaonO z@X@O`2d$U&x_t5f)-}w_pNAeQq)UN`nRb({X6I>{qf3hsJ2FSP*da(eo)WAbjTY=a zM$5cz^zx~d-j77X8aQ$G!jN)3gVoeo58G^>Ace!1Yx~*#fNOfTiwbHOmI@lf!83DB zo(Ao7l?HdBNRD2GV&scgho^inc`NPi(luGaPR(F4R=F={RM<9L+CUl+!}2}ENJ%70 zJ3fR8rF7w3h8r?ln55D(M>)wV`D^-eS~@RNd_~MwQ9X$uetxSl49;VnYWQ)nn8P!S z7eZy)p4zCY&!6PCX20W72qFV4u3Qf4I4@>K_8dWxRfgnWb>2X7=S!WFGE>P|5ycbT zT6iycY+I=c!GTVcH$=U$MXbpYpk49leF}Nf<#!6!%ZlX`(>J7$A0^XrO>ANbi*vO; zq-eU~r-OPECMPbVX*cu_{KrgB17dT*NWP>QKOBYAHCoyBuAsSJ-5Cb8nNGt3Wi9;LUGOyxoVC zq1KXOqu)+7MrIz`iScc;ur>2E0&4`Hmb{>?05{J2oWhfhSt5tM zw|T$6iLh)?Da$p@Z?Ed}HmGL;L19~QKu^g@Q_ysf=$*9+QZ`MIg5Pw6_TLm97w5Htex$rVy*l!v-E#vV+napMcpU3x1C zzrQJ9B5S9Vsh1Vl4JPgFm(o-#@ul)dMZNhhLZyz7U`+Ij5(b_4N2_jY*V?3%jW-PA zDJBj#$i^6+Tzc|3 z`ZF}ARoO=XSpdL}yLg{-JCS=ZFHQBGSa@q&$}2A;_PEKL4S_$bHeoP6UzoU0;GQ6LNW@vZu2md=?p4u4(`nZ2KM~!|T49}G zrw_Z(bL>$3u1G;U9yeO1)w*JN?i<1Y(%-uxRugVRUtHW6#2|hI3g(nF`9mvi?HOPH z?0_1cgQVKEox~>s#19tq;PI4E=Wc1Bkg%y&@8qJsg1s#7kd}%g&hquHm8ZObd)ITc z685QjohygspJ`Y>G+->#lJc(4gh?1*QpU;V4(pPsCK##yn zc|~z+&}OA*hrzFDL*GCa2YX1G0B+K87Up$$?+#2vh|bmm zW|f)a>Idp7;<2g{4EVQbQWM#UKdm}!RTZg4Jg;$l?s^FevQ*5I7&%g9T$@^YE93k< zAHV;C33^{nm?M}I%p(rOcI~P=%s?%zu8io0)T0(K#o@J!1fER*pOXyhq3r@#^Igq( zGo>djM=^v%Jk}J^FUsv@th&V1>$Bg{)8C9;@DQytH-Er z8!A&$x?v})K}2@e@tekD2T&EWMaNvAi&@4IFf(zRX*TQlbM@zK1?%BAij*Zozw6p$ z|J6d!fR879Z@I91|8;2e?Y&yZSknKq7Q(dIU=k_8l04u4BJVAu;%FN-!Qk%h7A!cy zH3Utt5ZpbuyEP7tLkRBf?(XjH?$WsHcAn>*nQwMy=bYW2yZr}FcU7J0s=My0zSIfu zAxhZz&E50Acz^rsOpesj8^dsY|6B=|?3wCVKgvoTNu#c??dNW1uERlrMf~dabp456 zv?j~@_Kj|LaHs1_`^p{K@%hzJBhbz0bgxy*=Jy<``V~^5q12&KZ;koqzEF*$;F;S& znR@9OCE-vAH-z4lo41rp0ori~jQ*P;xKNmyY+s*>lLk?N#oC9s*o>CbP)_u%KHHP< z82mtF@XzVXQB@6Z9DtM31*ZjT2Qb-b^xEhIpdBztf^9UeQmn}#v1((y-8G7;(4il= z0hbMGZHi%kl$a>JpD~3$hURq%VyreYcKwkZsiGFbSx&R4bS*=*MG`mtVF7)Q9AsF9 z+woovI~B5hU4pA$7gqsILc|lwM3gBF4CZ1ZJ@Hl#Wg1>6KCoM#A`uZ3bI*5WRM-0E z9sxPkl9KWh_S!onfJ=GT2lR7A2zb!oj*^KqGu#K4ldn@sNshmKhNlPaa4zxu1;0xKnQd z!k5V&y@Kh>^*qFWT(Kdie4V0~;Gv!E1mK$85Y-^(r^4)_F1VL0&%lT_(6A?-XIGue z2##Ra^nYpj?HM#5o@&*~V2m#qBAW@pmdi67xvKk)mj6F-2qd!&xL^{2Mdv>xLjB=b zo0ipbQGQlqlW=w1dP;5JKn&oao)|5oz!n(A*EwWxZh!`Q!4Z_WYG0?7}sJe zV+z77!_(UhH3?PiEN_i9WimE`nBT7rlh&237P4Xc%84e9`!1>Lm17O3rvs~Pl$i1R z>QQ?|RFBS4zZ+9JOY{8;@;g^buJ+cU2H0?d#D0sqkk@D7J#q|R9!7B3;v57y6znyL z0J^oTB@O#b!~~_T24)!IgLevzTWC`Lr>Lt?Z75eb*zC(9=+jk#s5Sm>42%Rnt(;Sm zN4WIU9eQT(|3LhG@WdS0+R5{9Ok@Jw4_53a+v$^g?L~PkVLe#^kBq# zVhpwXwPT`=z;BWmQ46|jkx|gdGp87U;=SG|p?Cc+P z`cWqWz{B`l`9}u!5Nb#@#u(1 z?MCvI&j2@#`z1n-hoAFG|WrQ*lCPzQ=-M@-e${z{(Rmeh*g6ajB55e_g-0#=`|+8NE*AT zFC6q*r0~2Qm&d8b2QlqE^}@WiZ=a0xK;iI!Q=WDBvnj@ROl3GI4Vb&z!pKM&&uyw3 z`^UE8jWN%WVtB9}p!XSMH>tJdW+3{t z@Q@m((;8d`jXyrfo)x&RF}fQQ~a*+AR6E_v*J?ay>dn()eBb%CqR!;tn~1M z!&5zD1q9*g#}a){ioYj9J1uZ##8@4^55y;3qo3VD{_+%1g9c$6X*>BI_}{UJeX=wl zxJJkgb8-uH;;hUIb8|Fk6S9rtr@MdLMM!P?cvtYvfrkpo4aR_EY}Sd+m@llRNPUu% zEn9iS;G|rl&n7~Z#K+s0yg3+eD@wieOxjuD=EmSwPJLtQYkVw+s?n7PzxU0D6j zU59sStS_Xk1i4`jzx7+K$o>3R){&>XAN`Rox1P!L$Ln*Xcw>QWCo1Gx0d9r`UtF6H zHCHC*VO| zj93pg)q!8in415(y^DeR|1c&}R6%Co1t=*a@WCIPL0k>6{3;X9M+JA>$aaCL8pjIy z(XT%(+1cYZ9BC=DJqUU@Fs9mQ7$7j7yV0G7g$7kD!0+Py^KQNZck9g)G%{;(54d|{ z!u}AS_$7+MAFjk7O!ySnN|kCfA@JXk^>*oQ$E0CIjlnTz-}W$V`5CI+_o<|E!)E0@ zrGN-L5)8J^ES>nGP1gO%=B?^j$h@!%uGjP}w-D1(xrGpE^~AWn(a62f;u+V&q$NlU za4UK%aM}F(!u=HvF1{>C@Z61IT25GoN`}KW5p2rf@3RPg&|C?gY;E`Y8(XVQ#BKfa z&3J?ZLqQyy#_+n|)QHO+*^oxAd)MxD3m~4qidZdX_!=+9<4hR%%|@m>m!d4jV%bmo z+wl!1j9y}5gRaA6ts6W|2OBnM%QtwrIYciV`1vl$mWF~rrQ!p0OA!^A3~}iJA3Y@u zT1@?V_pFi5FZf1^)j9$RWrH}%!XLcd&9H-@3CO+I*1Bjv^uxkP2`A`h=pdYRL0pVW zOZffHSB$nDMm*<&m}F1{cdFd?{ zhftd1pQvU^kms71TH^bCBu*>swV>v(f*DBC5$r2t@G5N!ZI2)OM}Hv z=>vG@+4??N0MgL`If@AtpH>IT!#9=EqsL`VY;3{0eTrLGj#1uYpglezFqbjD3i#26 z3GoC3xfy2EOWe@SP5y-h+)CEL4IX;gp@k>@08x*gm1;C;Bh?6TVX7LyWxg@l&EXs_ za3cWb`ar*H9-0R~loRh+I1-{=rT488{~8bAPZo8wwe-Vix5Svsi6Pkq-sibbit*8$ zI=gx{#%ZOyA`ohG5))uhBPMn;Q25z-_2DE8m-z==2(Ykwd)`o`mPn#~l_>7vlR+IX zRy}?S(zBs~FqsoF2F9ySe?&&+%Sb$U?+EkBCm=_fOvOGzw!a}yi-~!E{JYbHH1wAA z@h`Uc3#6zpM0p{=H?`CKzYSz!O5gt5KjO&$#wif8{d?(|{XK`^S1tzljDTM;693;= zz^Oly$lGhG8|IiCJTrj01Ce+JZLgfN%7DYCfU z8a#phmqV!(VTq@xC&v{giCBF-7o)LQ9b*uGLhr6*=jEt7{Q11ASlog21nDxd1Gz=LTKAj*GMEpL*g+LtxHFZm|V>pClqWrOBAYAC9z~n4i3s{G%~t z!bo+QI~#_HQcWTn-=Nv1T`5 zs76`$j`FTVcM7})vq1|64}s^Y-33~`?#al>g43>jfA!f1ncm;amyWig|sI}h%wF8)ui zpq*GWo&Fqvkm(j#_*wfSPwfFYV9dr>vV}|B`2llO2W(z&!@E4GS5~VL#Qeq!TWh@p zeM>wWSA@tytA9ShHh4uA$~}P6O9g^N$0zoIrFEvdI-Qe!} zQ~Q+{a81t?&`_6XN|PGkg-N9c`gT^T++XDvJ#HvdTM2t`8&DY9H6zIGNq^q06}Vw> z*eWfk4!0{c%+4xtSS>4&6ekatF`&^J?nHy;AxJbEKR6L*d3<3^!3=EFLUX)+PfPLo zylpp$Tzhk*O`9|As5mIU|Va@oVqElOnCi1!)&S=7-!roxn=29_jab< zFlSiz&-l8M>+5#RJ34>A|6VuUACdCM+YS8i@@W_xM`|+)AAE3~vE`j%hLpxf8ZYK4 zxCdo9O6Eg9qw6yg-?8&LcPCfE$3oUH^XG^>rXB7KX zw!zm(XgSC{FI8Z%i;xg@WU$5u-F`)okNlfypW*vj!luNr-`sA3E})AlN+26mS$1!p zy2Y(DVCjLl|E9VFLvtp(O8-^=@HxC6-J8=>n?t{6-;2ks=tJQN^7-Z){`wkRgEkAj z7k7fLr7v^f&;vCS8jJzz{hj}XB^lY`!biV_b*4oC2a214GU~X_Av$KLkc3Iz`DNti zVVTfycn`w6V2jIQW3m=h-F5eybrAo3 zFaj|EE^hTkHX(+JGu%>0y5^We0wMjzaGBB+^bUzF`=4IJ6s zbKhMPiu?WqIO7km#9=1yaPRjOQx^`E6k9-orYn?6Xf6ljdh11C#CDbEIHMNi7POf>@|zkXKS=mt`xU~LNlHx2vPx)u40dNnoT2iegynMH@Gf2~r%_K$;9UA; z<8%SNw1(ns5Wz@Cu4uA-7B_w|j{8YwLYE{&y8n%Gv(Rol8Hi$WPk!AclKAlSQHJ;p z9i0JEA$3mZ)%oCe%o$NALWNwXbd(#_0(KD4@i{mA)uNJu6yANGGf#Txf}9*MLKqNs z1PTT}W1^F>B}BnbQ~C<$+It9nSEhgNV_#tHz}U zMIAw0CL3Z75#IiZ(6yJn0ol9emPRrnXOpa^RGNjgH5l3ko3COBf}xC4*_M})hwR`+ z0fTk@vTO9`8PbnMGkL8J1gtmszHB`$T{+bUM=*9(Yg|eJ7jN0+q2sbuZFqfmG?D#2 zG-iu;J*0NfVY!zx51 z75b-Nsw{(~=EUa0^^*&Wzaw;0JNQp6U@@asXAQxPiA#*t?NS!h_PSk?b1`d%RwOX@ zC42qKT(f-v-TGcMnFoDC?skUsh?g0V%WYt&eR!`gm?b%G)eW?<2m? zAGfzOcD1!Hda7_;v5%}Ll*AQhcx*%n&1|z>_W7Eo*CUMFulW0Mp25q_qkIuw()gsK zeXEl;xuyy&aZPXhM3U^>A5G43=;YoAR~J|S#7-J6{*7T=-Ptlj?s$ogqoZo$eP$+d z$}%*Zt!&>P&?v2Q$j*umYp21(VHwfxt5caOgYEm%l1c|!uLJ$YYzrAKt!B~L=FcMe zCwxeao>v3J-$tm?-vgG=fqE4jAL+Xo320};Ht%A)*2kNyY;G<&=}xQ&CLx2qBC#_A z5sc4bi)Wvjl^+MXKD?)=ZGuiSEemwtzwqeFh^>k{*|VXdqS7^{!q&j&xH)-Ewt0Ks zSQ`5%Tk_LLl*-R4cFb4X8%a02p3y=Yj_R}3wYt|*jvMK=M_E?K4KzA%Kk$b(|M8aR zgX0NxW0%h-=R8Q}IseL^1RDwhN{~w0l8rS@8xw5Zxa5GiMp3u0yyte0gvS?W`cB zJD1Gp2{@QlIc|o9uER)B$D6Ue_Q$oebcgQNmPr`c$H*yU6}50QJNPAh2GYokfnSZ6 zwqLKl@3Y^<|9M-T%CyONJkw-Gd&2}0qbY_2Lk6FwvV2Pzw8U%$GSZpebVuhbjfPY{ zYC|>hEJ-SBoNT$;9Gg5m+(K-Fz7?Ls%Exe6)@$wR#8KJn3t9Wo&j&!)Ocz1bdlDFq z#FMn4pSRu;;99a$NUKLVFBCVja3-ynak@V=bx{s8_4rWJqBT+q7q`0&L^%zJ7cznd z^p6KG6fqe}xu68RW^ru-Nl7D874(?$ZY$XtajOD30=%6Zgb&W;p~`i!7J|UGpqAhU zJ_la0Ni%Dyo}rI1dEWdXL1lc|(iSYa$x&U&@qP~5qgG2=X{xrRn%|Q~R%w-sZkKlU}RozP2<^cuNvp!Zmir?ZC=+|pG(H0 z+fHWzw?ZZ(m_Sjuo3;WaKp{;_J@N@WHtN6;lq!?_A>D+KY(K4<+Aj+o-(>`ED9Q5* zu+hd7m{o7qT=cP(}vdYn(+5jtn;r80$df!oGf^VO?p+FI^sr)2C0gA8>u=ttY zbRWiMeq+QXLZ0}SZIz6x=d<4z*?;mPo@TejK%LyU3{*#wOa7UOMi`o)Q|Cf;c#`hB zmU2&}SXOW|tJ$;Jglq>>hBY%>Ci#4`o#BWrXw*Prp+O0#dB{A!He~ze+=ss(Y>_X! zNLsxqv|>1)QT+QjtTfZ4?SOnEW>rdS|f|^cpYv{4upK zY}f5efUhZ~&P7RY7fw_FszfF;5&t|$%+H^!*~MPDp7-F{HW3p`f4Lp~{k(1{kw66? zY^*I>3RY0;Bd6+8~_kNrd$Sv}FS)K8;`5+Nb0`UveJt(hf zwvPlFIc+j_PEeZ*j3{jRj2u=|^FoSl!>a|u^zS@s7b`3Sr!%Eyz~u~Jt3;WNrx_?8 zGPfVpRZlWCNC%+gA7;jfg@$X0PAjgWQZH}#5dZN~0K$}DRY8WSf)q5vbZOxJTb$mo zE6?autp(w#CFd#CNbK~5U~9NJ3J=*71A09L$01vdq%)09xILn*QrT4<5rEBkILXBM)u-l5< zQtgRenw611kVD1VO9s^DM620n?p#*u)Fp067ccW3gPd$vprLG6_t~3@Yn`aGgaG^^ zUsglY2Ys!|uz$TAhj(8DaKjzwxk)0Lyxi>=j3#y93#Z%rnm|2gQ(u`O8G3cLDf<9{ z&Y+b+TuHKrx*D{El2otaKlV}np9#0{RhXk^=E*-bz`!DdU|pP!Wvvf|9MNCwpc#zs zV;`lf7-pcn(oggMD4q+$Pu$t}BxS^ZI_UXLQe=Bh9hLGr<9~HL#rt3ue)_3KIRH_cpK?3&JnM&MhZp@~s9zTRf=_5{t-aPGQ;N}J~(I`Nh^$;yem0jT?cG=J7Z z?H|n3zD=1~>%}CQ^h`PYSTOme@uN+*-{bbV)5*6+*Tr*)uS#kE;PZb{e)a#Ki3!4l zh5`rceZ%*kdLqo@8FG^U5);m}=#LKD^y-zoZlPw(+y#62J*n|XYfuKQ1!_&zku^Li z$uQbjR2p@)-Xa(Mo)Mm#JD(EjDef&1rz=9a9mv?Ch^Y_Q3dp5fyEw1y{7*O24#@BN z6oW^Vnsm7vtTtSTQrl+PaX>Apx@Rq`zs#P0j=eQ%?kIrBpAjW{UYkN4rO7EjX-}11 zf^qOd3H`+UVtuf<{kZG-Kfw84)NYP0GBR>-jLCTgJ7Sk_xA_o&<)e?&d<~7E&{vrP z2mTyf)780DV`5iU>#?m8jXeD?_;qFS30zqADcI{@?483P;~&gD`;)=HZiVUpB^VD5 zXXW_+*#d>*i*`E|EEZFuLxgV-i}*;hZ=oKw>sIo_Lt)Nlig4|dR!p1%;VwDBVGj}lJj!8aqM2w|N( zBA?i33i0bx31OdP)USmX@2OzC$dd)q)4(LLOKXk-U(AS{f%?=Mcv|8rS0cT{LSd`+ z4lOA3`WZW8;1JR}$(lL4+%&--pSo%fFZUolpK}nB0*@KJ3k7mXg@a}VoGMu{S^(@6 z4Y%asZf+d?$Y&_RXikJ{;BMI}D#C=;XYh|$g+ulAdrPF6XzUcvD6r*&6RC$|PN(UY zW!fvjJaHSM;ULn(^-3(8{ts5I>F&$D8ysK}#N)IxFN9_SV=wo!m}~jhFg|56(MgBI zm;R43053=yWDva9FsY?bVxHV9NnaVBZ@Vjl@&6XrjA^@doqsYs{$ceebe7Si7Qq_H ze;fjJuWiMIn%qDaKU=P-M@&f{c}B^?m~12Hb^v05cD>JAo;VU9=x(sdaK0U@VC7qD zwP;HYQ*VhiKl+0FIl;Oo(g}$TG!w<oDC@BhwbbfM=IT^Ns^b=g3&p|6>Z>ZR+75yj>3 zla?n_q)jUk5ZPDs1USTtjw0D8AAnFqMonS{a;Jw$0mJ&}0*&EI*RoJ^rtrf?FUHjt{G17PIbks>9|dL|TbYmab| zMTa$HUN_$>KeG{`qWJt-6y>R;C6yCdL*LW^&cv*syOpz%qB{2l=Eh154db3D3>AGh-xnZp8x2>56Z-A)#Tk)>j)Ztb8YY;PVh*xHTvO&vllwg}@ykRAc~f)fn) z(j8szJy&(Cr6~bg&7?64P#3#7?Y2Ocw$}CW<1?k${~JJg@tnp$HcZ0R5th*980o!# zTTcp4cCqpo31Ha+9WEzo+tC;9C57m0kmE1+sV~D-PKMMIr2ULxcZl~Ae}M8H4@=++ zUDeh`RO#-3e>3sv=rzJqQ29H!SvC?~T2J z`)te?8_f5p{^fHM3GXXc_2`LM()}QNn0@YosKW+LA@wNZW8<~w=j97%`9N#a^Fd<#*2j#HPlOr2dyoNtaW!Ira5YC)-aK<33H^r zw`)F^B$+5QP5*lu8Frmn-y@F#*q=N3v=whlUjq1Je7F6Z4W3DR*NzoR;`vf#e6EMj z@tWnB*6~^^c4qIfk%Atspqo2vA;nlEw%5?_u+;2*t%-rl^;Wk;a5h@Lz!qX^gfD$rZT-5V zW$G1s5DJ;y4%^*~RpS(TN`_xs$pU4THMvgGU7lKj+IdOWWFDwD=x`$%pCA%Cg%;ME zF<t=-l8gBB7d28M^lNwq^~jjP2KJanjwNdhU$j*T}#WM|N^7(UzfPGBPKoy%Q{ zb{~-|r3`|)af94JhNNdL0+*M?EP+&BCC$t2@`K7zb9{pq&fCp|= z!)_V4KWD|V^7cxO?)d}2Y*yvnopGq^4WZY_4O^S_Ib)jd1!oHS`6R(#ral+%xrZNQ zQo3gHKCPuQ3WhfJvc@v{4W>(2cI27tW72bEniUn2+MW!<>1wLWM+MdDs1?iz8l<~y z@Lnzo>?-uP!`h}e1_DUnq@VrLVQA$~rd|UVSj|?+p^tu|w@ZT}6@I;@cXRQM4G39X zNk?UEH3=>WLJ#pg6rv&R=5sBK>Jbh}+P>)e#7!J-Xh_jM)S2>k@p?P^Y z8N<|+OZ(bpox^Ijt%huN4*dMwgI;hW$=q@l3()XiOIpXj$QC%uVaqhbb*@0`Auv9c zb+bFE+5#>Hc1>ipH2!E0G_eVHqkt?+w9!fy*CeVBj)g%6ZoN0yKJQidpmH zX#cX}oGOky-DIeHF7z&ptJbe03jUQ+g8RY}(&dtI{X5c#z7iF^?;HK*(q{C`3Cim?p$SDn zjZ-EX0yOPB=wmZn`i}q)^y+?+uAyd#!-WAj_siqr`{RJKc1o!v=_BBB?dKq9H<5~& z9>K!0#y?f$it5Vj*)q7UE`$Nhq?B}Xb1NAh8tBi`)zzkPscaNyzww%pkpo21?@%;z zY%=i}X~7L9cNAPgDDM9i(|jmtle9MB^&HgM2b56|N$xd2-J*OL4MumMDtOG4HYIPp zMV)L3>A<_B{Z)lm3q5{uzDCrJLbAEJ3JKB-MbRBb$EZzxV!HWSaWG(D#PZC6f4VXx zQ!>gV^Qk@~X+TVn(=@C-t+y)H`0g+O5C!|iriHh{VP*Yr$KuCvh4B|8d_<h~c)etq$4$*+H|a>^mvDcYv;LKdS8lDN6;7~(-g;vNLKZL=|ZMe$GcX^b`<&N{3d zlL^l*o12?Hej{eAVIR^}7vR>O?m_^Bp&_X9MH>c{S@*WH zMj(9NE00Xtw9rC*xB2JJnF3c~DnS84-keSilo-(?`Lv*m3hT3jmshjSTMN1$^(c)V zt|gxn#y(ZV6MBen-K=l!Q7~WhCWo$lt={%(=*!cjzm8Y$*!J65Zjvh1W()c|UZ(mYIhm3BJa`+7-R7Na#*ctwcJ-5OdNXv*I*j zt;yChGOg%{#2$pf_RDfZ(cvwrkH9SzP`GUek~c)NyR~f@OL{E;;&XgiS99Inz_2mH z1?U98LqZyP-CXZ#{3I}%_ymscv?2#2oWBgNoPxp>gxp_^wg^4>pP|AJGew8*a25%? zQ4uhHi4mS-`9b2&l6dZXY=LkeR1mR+%4U8wXJGMM`>dED8Beb z^;#RQ$S6M!3h4xI_>iU*L*Yyq*qQgcM0CN2`d^rFDC#-vykMH-i#5^UXyIbQr#N<9 zsg^pTuNtuITOYg>gb&Pr{(9A*tkQq}#&LSt+D7D$U*Wjdh(x^0TUH;BH^lD(E@=BS zX`DUU?1DWLDwOtvzM)iF>^MTP3#!XMqsPGu8Mx6%YDd|iBBgvH8E_x^>G{0VFE$_h z&_8H9PgS>PHza3jK@h5i`yB58Sz!#UtEr2(2=>LF#^veQb9k|s;u7ocC-=PdX0sDMN!FJ+HlZWI{q%t#pC!_sd43t4^p+Cn06a<|Az8r9n>)uXZNVTokoKncr)+K?zx5$gek$aV(U8lZ_86nOXC zIxk#*kzO4JdnOg7=Bj38@|Tmm%}(4{!Cd+i-6&-bMX{n@u9r4FS@@naMK`+2y$~}G zblvY5$RzwZ##>;Bj$&Ag&V27DyYryXc>g#&bDjlI#dy9#w*I8JSI8taR7{INSc$TQ zsxuibtWdy$`n>FvbQ1T>K-gKlfPMtmNNi_-tS35J*%v8|{iK~~xnX)|lto{v`D0WI z;|7goq+C~>K}mes!8qtSr@$o0p5+p8@96uyyj>9N_;w%%0h_uCwwie3h8O<9tQj@^ z^LgfnB0G;tD@hLa&<-9RzCUYe;fJLC;1ipW#S|ptjt3RN_3@<^eP)+wrCk_!9noyi zz0n`Wo!x?&7k7poB_K>dCEm$llN=be{{De%Yy-ANlKTcwh(d}=;;WaS)yw#bOy{Hgpsbg~Q)qJtsBd&IoA*0KQB_=9xlPV zvTLDAlIBQ!E!=ClEnS8`FH&9W+aH+-%> zZkWo!pIq{B&>vxaFX>Ywu=W+X<8BD4EM?Zwx<-Yt?Z6MA)-4lLGPc1wn@8ype?)(V z+8<%B5P}`p%))=Oh54=}xArW=3+c70SOwyDTTL)nfFVP6l>j7NIFFkO^Fa593#v77 z%aW)D{T%^M!DOO%Q8EGE4IdnE0Z|vkc&iW0j^Bn~_-#e+v-~%ssMP3Nnn&@BM{mAl z(6)q(@MI?!{TEoMI1tg^?(IfBRd&p;JOrbR^d>-Bp}Qu;jQ(iQ;VMA>GamKBQnlir z3>cR?_Uw>XR8#K33@rH$#&w3|$INe+QI!re`f?+I<8yFAS7G7PpcO0n`jYy)PuD4m z(bVf|$&ZZ?>gt0Iwu*OK=E;kIa#Y!Hu$sAKcp~UA5rO_fL@yJK{Ep(J7@oVD*xu{$ zNGj&upSj&C4rG8R2dr)!t}Z-R;tG2SvHSebqGf3`rX23;Sco5JW7`WZ1n)U^}Lb4?h zeW@m1!ZlcuMz!D}^y9M(mO_N1&vxOSl;I438EPn>88ladUq2^HL>4bl+e zY;^_^mZ~t6!UWQxhjH6k6v{Pm;{=-BCDCLPiaUdBi#74a$H#5$?Z0YYwthl`1q)4& zsdZJQ-P@SXDRgJz7Mw4&+UFOr|J}2B)V6ifY_OcwIi>=1#o12dMHX}}A*Qr*=*U-3 z2d+^0dR3?0-oNni|B1|W4ehEX=C@@~Q*AIWNfVco4tSUqv%W!6PI-04x8lB^x8bms z^tjj_g*N1Ogr%n+UkILxne%CInT`Gh%IAIt1_tuDy+LZYZLHXQe}NIpeg>8+kOxH) zMW{-I4OFII#87E38*E-5H!4K+9A=Mx2dhHkI^)f83Y-9R@GIfaCJP zN1bw~;M?r!SCV8$S7QHXr$G5B$1s8|VXL0>UPd0b$1X6#7MTieyP0CiEJ#oTUAC!p zfXGJ^#O3afeE{-;k(50p& zY}?cXuObJms$a`+iI1;xy@{9?Bk?#7?%F&CsL8fMsxm^&uD@kadl7a&rV@555Cpu5p$b9AB-2w>HOX7Zn8LfdicFbMQ5ZU@3E9Jg)QfM zvFr2)W|Z%t{d^opuO^;X^R|xHG9tVAd5Moxx);;W(ipL2<6preTKcaN*V2TlifSHq zfmW#Vee4C9%=>{(ppDXP3ac%Gsxo&!@Z@RLnnBo0n<@e?DH(VO;&O4n)q9J27$GyNw-*EWN-#LCrt z%h*C#LF&H7D>HH8dnHm&SvYE}F1YPWxc*pXygvS3zhj?Rz`g~mJ}@OP`FPX)+28ZS zHP`6NuA$5`A2GfC*DkkQBkjPmu7S(p#&X+lNCSTI!kv;14P9EZyIKo4Yw09WfU#{t_H@Nt%F0X3Y~Yr6Z7Hv{-z&|1XVa1F52{O)N-_XaoYmDhY&O7za|$e zY!MB(m7})A>nXUzW=C4g@!ZV>5JM$nKdkl_RcNlCE9p+<7iL7^>1};i{ViDFATHn; z=iga_S-Zv>{}xOs$SjBKNhcV{s!?k3wfS_&dJ+rW&L)BH3umH#_3LqZqRtw)lY?00 z-akxC!44G4;*Bt8MRg!}1M$(?{6=B5$kXm?ZQyu0apC3efA#iC-@wz*-yQvb zNw+n#^p$1!tDi&_iQZ@bwW|C)l~aZDHgVerqe@b z-2xTi&hx|Dq}fhV1P6ZvAD#U?eohBiwcdjj-wF{%Xdc(6`Zi|*jOt_|v2Mp=#i`wl zANy#iYAQ{6{udOBhEq#o_~I_3)8_r3Kp@Ffk5k3P`A?){ylO~#qJ z+d(A78L_Tq7+A5AolI-S5dW44w6J#?+%L7=jq{ozXG!;cocmaI5n8) zRV>H~1+!Z<^gM>wBDNK{toX>R9Jjs=I%z864c?T|N%$da{AgRbd@s-6#LeSBFGDv3 ziX40h_5iJ2+!w(~u!=m(8vK74Q^Qo2CXT0hE&u_tX)i>V6k=q2WaFK-+Ou^A`O{(LfD(yDg)b#-fPefgxs z9HVN)wpVOqE=c(xUXx39l)h;m=sUa_CcZdkw$)h}hRRwDYgq3%=?>!@x7 z-|0im#K1+S6m-C_LB{?HCTa+Q>C>v|&85;jK(y)PE2-Ssnjc7V&Ys^ROH_*P2|o?A zCzLaqYf8$F&?8`^o#v-tS>n~I=5jiQgb60f@Mlbge+5FkuH%Q^+3$*Daapbf$Eq9b zfyHH{J<(u}enhYMk6{>{BrYOiUp-O%mx%&cio%#vDAJ&mlskp_1NspI>%XGrpy^n# zvYs6Crqnjbi{8$4(<4UOVJESkrdT|71FRS`tejM@Nr&Da(A?M)VGCKS^_rRjY>mP% z*4_)M<0vy@@tmTW&9BoZvcH{NI@vx%jFa^c3}hRJHh~`aJ)C-dy4EJOz$rc>O;q!1 zdqV|NYXc(4gZAQ~NMbIzw7H#ZKW3ZWtB3}~c;AduHF2051S+^SCa*c|i1+MWUYPRq z2D)!69XoDQFL-_|^C~`VERcNXH9@?Kvu(d^u9J_kZ%?p|{G)?Mo#t&XQdQ`N20;Ey zq0IORm9>@sZs6if2*`4D{*`wrjN$zSSiFI-P7oZE`Dcb;jEuxrA1&ei$rfqvMaJJH z8frYTw_c1lHO0BxM~4|0MggvI+kn4e6dB{H$^~od~&jXn#ESd@|c!G6H_>F;;;4dK}VtSMvsfd$H z8VnXWm62H^B&;eva55v{-9&B5Q+=JPNkf_jM0DGgV1P{t0PDisyc#iP{M50_r>PJ$T&j#*O#+8|7++L9bD%65^ zZawsF21Q(DU~>*L(4Cgr+gcT?SgCab&bEFCaBnKqmShC!qV-X2n6eBcr7=|A)-t#Y zzZ1XB&Y_`<6Zco(eW*ZniLYsOGCtMyECw@CeMG1G#{9Nfj~~K`**>&E zt=e5)pb`)MW86!9dE|d_>;e`@3WvR|y<`cyp||WdgIk=tpo+5Bi9)%z6Fj=p zF~rrYwK3?T2xj>l-JvJKi9@3!#}uOReMzbwO-XJt*!nnaEKYxd6MTLtInZf!_91ia8~{O&tfTdV;EP1({Z5|#Zn z-PLRArk`Co(!F0WYUyNp#|6LHB49fm(~ZOdubsRu7Gt3<)redUOSz-INhefKlp!Xx z=u?aj^ir;reO_)3WAt)Gqnx%En=}uVD-+w477iEem=Ao%g1BI=e`U@~|D5;kwRVhM z?{)u~JzSJ^KMCMkt1XyFbw_@dEZi*oY2K>UZ^!QO0&igZ$Y&*iX^)sbkNLasyAirf zZ~UG@;mj>{IO#N2mkw_4>3WpX!nmu_*#OA6RaSgFYUjZ6;)oY{;>H7d{qYj`v`0*O z_%YHht@{2M_xoCM%+3-Xi@+M0cDR!rI}KuRq~>Jt#x?$W1C<7DA_j&Rrku#O8gIN# zhX??$t;J0#EQG51lF`#k0WsW^UJK&4?06vmnnB__IRGhk_=dBBrlX_-MKa>y)pWT` z-)+l#Afhu0%lJ->W|iTIIuXKWrgA}K5X+op9g9kxO3OL%59emnK?;6+6!)B@=0IO} zhdW$@+@f74XG(IpBXUH;wUKfglKP>M|MNdqN^=GqHa<9v^0GmJB){2I3s&ery)PBP zn@qajCKAzIhLE&jVY@S9nFPzGxF?a~V?zdOSx`7Y;S?e|lP5Q}Xyy#vxiEKY-}+;6 z1;7*okepkP_{RDIw1CjS*}732?j)YXXrS#s+1De|I(!0}5M%OEefP2|Rm!)o zgmZaAz4oWl={ZuM&f)EgTKFk7WZ8=*+v35P%#3YVqCGfy?pprkl@ELK=P`Zi(4fEJ zwKe|5gW(0|pq%Vp(Zl1^z`_T(w9gu_wLV#se#mwTT3HLhn!skz4CJ_hPMa!i?LB5r zD_^z=l8N!!x>YZ)S|Z#CHCy}iZ3F#{jYI;?_5%*5e!|n!&)?JI zPz>9#Gnse?Ucz;9t^UnfvQW=I>k$5GxEOD5zGt?nbU$z8t!iCLYy(Cl&vB0LOVE65 z6d8VF_NK^xryPCMxv*0GKgv7Hpt!niT_+F%!6jI5NP=4k?j9h)-5Uu>aCZytAt6A5 z1$TFs#yz;ZHVsV!jWsl<$@lFex9Zm3b$;A?s?Pk?RlV9~k2Tkr<9)}oq_VhNfXC}p z0D)$7>vp{WJ(DuYsTZgsmdGHhdMnCpLp#MWCiuI{f#3ng_0naaNYHq@)E$kGpvOy z=Me@fAlKE-%^5osFT4g}(td@a3Ai9dlW2@p5RL#50+l3ulgny^&LRS~yt0^SL0rt= z*OWUgyawMoB^#fJWDqay{CwqHVJeTZMu!s7f=u8I1UTB)v|ap4N(i2T#rWeztY@;C_Ngp-leZ}i}1Rj zf-o3(@YA$o0aQk~?_-*z$A zj+UjU)X2Ra!QmZ0Eu=g)6t;M=BpjZU-_6v>+`NZMt|CRXiGy!kj>$A-KllLNEy)G5 ze+C7~=qR^peo_nR{j}WqW%>1j2nwUd?0v{1$R1<*NI& zzCKEY$e@yTqb~zMLQ2KZSG>&$3Nt3C!eu8Ha2_hNqU9NrRAvbyE`$zLT%PszbC&~7 zka_7+`-4gYHz}C~%z{s?dJYo_D8A#WEoVh@i0R>!AEi&kP^=pq%v__T@Pyy2IV>K+84qAD#8d_hQ2mmveB9y8C<4_$1B zr~)i!WCeFub2Y->5%?cS%L6tt7y%Pet?Pb%cziONTQkvGBI1Kf5SAjBTcJqb#?stI z)fG%`g2HJip-a%i$5v`eI>oNJ7x!JuMS!L8Rs-v&l&g{3-j-M?Xo=AlVB=O|q_6vT zYg8}SIETce|7g(mWc5{kMel})KHf?(NmdsVO3cWw#|-vweM&iJR@F{N9QlQ)mAd#m zPxIGyAusibE6J(7tW6>@nl`kzj-koSh~a4bUc4|fO2Pk5S62cK^Z0j@G&cP+-FWLt z5^HGbuez*s7v^wGqKC?U568boQ>E0?gO+$JM^Ox$-)Fpg9Mcl55gy(Ss|MtH2lL{Q zR06D_5*$}Jpegx~xkaUY+m-Hop=NK*pE>6aQPkOK)EaP_wT($M z)(elS?wIQ}=D@onaS-t%Q-Jw)hZMa6DQgK@*=)3^W^^TnMQg-|v-(lAgg$NvcilBf zJmAVzH1v}}>{YDl-|G+VJ8Z=0#yFG}i=IEpFB!&lOv z#y+?2he_9$=k3F~A0*Z1{?bl9HLSEL#GTu=+$%V^o-0wlN---zmyxNbyx8|km`EEc z_qB@c`sL!7E@DKTO%KL1d@X_P=}7BS+g3Dfi`7oD@oqZv#mz#|rX6D)+=i1s$Ij%_ zU9y`I3MH!aZ=J`Y^Psa~iJD64u7wb1F6$$dk{EZnaiAD6rt^q&x?DycNie5LfFM@8 zyhmWz4hd_Vyu4|+IDYe|bYF3^hj-%yd;5i><7^KODJ#ghQ z=RAqSq}w-ccoV+Yn~h>sXyZ7daCa%-6qgTt8ih@_87~Q&I_qZEF8JFH70Q|)H=$CS zenf#V-(g@n!{bgG`3l1_?{&OzV*49uIT8KLrej~HN7oJcW{dT*Fi5~JM(?PooJi*S zmBHs6C!q@$zPUF{{s?vO;2*_+d6_*mD5JN(Y*e7yoOvhQ*=n>(wBKfdfQrTGP-nDJ ztI;Vc!2ArwWkZDXXD1JmzCiCpj;dI`Ta?NZL){ZF`ZyKKAoR+Fy?4+73%hEy@?EgD zpb>=eeBj{|0}@ljxzjZa+2OOD>TkEqC8Bxb*jH9b69nnz{xCtILTnU}q|wWgMx*89 z%cS86V~uU}m%tKuZrgJcA};NByVfgsn#L9-pu>4-+QCC->8~PDgV}p`x)8~8<%C8=$i{e=6QTl&7)sC~X|r-yg@mgnj<$=n2omn` z+qeAxAQen!(mE3D`0Gribw~0v1M#g~gWTD@e^?@`0&rvXId!(Hb*?f|N=!aQA_6VE zu(~*NiJ`Y({r8Y()pYaZl9?*2P;*^gDr6h}U*M2`Josiuy4CW{cO&- zGm1dR+9Dx`!hi#q=Lv9O(dzy_s@TXfHNmvRL$dSU=V#U&NK1RC#fvwniF@zn@FC$G z*~Ubh#=wdh&+yxicwZAN19$-9rWb-%F63elzx9g8rNh|!*)$oE^--;d_a~VL5@^Z2 z(<6!TX^%FPa$MvW8g?CaPR>vv^BaL5=n!ROqNjw1-b&%)jn<{1jI1ve-8+hlpp-5o z-FG*lJHu%~dM4q0ibQOn*Wp%)tO41^<+w(|&s@#aYu41?eTu{K(q3@Q(8D zJnGr}bSxv0DAtJ>tG|2Nx{=+kIaK#QKww1pQOB*>^F*IoLN&brlQ;gCMxvj!qL48> z!5%*8-9e>os6mmPa^d;R_va4Xr$dxsy-U$9ERi)p2C^!z`J#oFnqZk`Ygst*CtgWd zC8!v9?DL-O+M{suUO)=0?`6n>%l*Z@c~)4JyYM&o28U*4A}Bok4`Jq$=tWuPUYSbA zpJfK29=z+3Id&X)yv<6BoC$(|#1!E_9{jh0>pnjJztA=QEBbC)4G1?{_fc)tr2(sUM>Dh<-6j`he5i#ma{+WjYi3E%f>ka(}#xlica5m{B$&~C%I zo7?z>J54#eEqzn|>sUz4cLA1;H+5gXWyrOB56m2OopN>wz89G;lfuKnTa0e`Jg=-R zk~!$BY6x@0$tP5)ob8dF16j}Z!69s9XR!`$ZlOWaBfizhgp0x=S*06r5+9w0g0gEJM`SUhuS{2&lz|Z{gFb3tn5uuT{6MdBp*0jp)%~a zcwWF!;Bou&Twu|#>SS_d!JPw}iW)lP>&+pg1MZG7POK5}%0wWxB6}Vr@nS1%oeBcN z+`r9hZR+rJjJqJq=AMz;YS{?G!O`EVIQW*ey}k@se@&W5K;XAC%{BHk;1 zmm0DSA69f2jnxbM;XKpvd}l!P7ze@Y&Hk1I&SFbCBG6z*ofl!5H)Tqg3Qh|sR?|lox1qq!k652Ri zRp+)^GZIyl(Ucu+f}i%)+^anfPJvO%k2Z?=2y)CTY(UNTnp$^5a1soh`oPCngwyYE*4T=WXObD7)V)eugCJkU+2b_vWlha9|r5Eq8W zFMcrRoYjD^_c_)o^_1S0F&uwPTTg}qmr~#q*UViUOhopI3(=N>38YX3MOCTQo%zef1r%)SA zucz!98~md@a}TG$0l**JFW2b8il67UnF{iT3xwJGcx(9kju|Sb}kb8Yk z(nhxqg`1w4VzE|gnFzg7qh;(m=9==3|JHdpnVWps(1uHvCWQAGt%cX~5sK`w+dlLa z;yh^`<8{HonGYpoBqeMfdFzHjqOuKQfya3@Cqgkdl~wiSz^vaYbU7YnY|;y$+25P0 z7W(n7+s&@nlFRB$Y3%9YC_`I8o^>jK}T3- z4!75?-NOg5$yQR(k2RvamQh^9^ojny#d<&d)?&PpC*4`P5(fIX-N(7Q&x}IN%@$yr zQTP>Q=y^6Qq8Q%|cWMQ`@L&$ToppR+&K{cE8l%R;AY;fnAjGz~9XiXO)&U#p}0JdsVp~mFx9U3$eA6&G}*i#lhuh3&+5bkCp8T>xrVL7)|D-MdBMF6 z1|?zvtPHY^wmM&gni+7hDMHBGQI_uvY#7Xnk^wBZ;X+s5{BUqRP0FT8uvs#*4D%`M zps%uES^wTTnC0ZTRT$>r*OtzDz}{-z_F?%S$Az#F5)QdxI1(|67$!D1jw*=vDNq z7(%)^>crD}70G@R4Q?CP#DYolWF9UG^ses;FYvebg{fdGRT<_xG;(xW;QEqs`h&#K z&chLQ0Xop>Tv%B$j}u4p06xdo(~ZfIB>cVX=FO<^6KJP~yI5kZb&kjpAV^L;TMK6KRI!zV-E*tA8+feR%zh#2+RYy4S@m?>3)YO_FEWk@y{JQOos;@NXM) z)xC}Rkhyn@mVejy2oxVvL4&JVMC07*W!FK@L%%W7-?kI^WtIf6tJEVb5e-bZkp4Y7 zL=1~;!bLm_wWLxy$Y47MK%Y+CS+MlFR=5Kkd_5@h{M2bQNWvltKVle&l8UaRK2NOA zHz^NvQ?^5omga4sfo^>Rn~X!z;# z96xexMe%(=^4VUo1FjJqK(O2vj%+~ z34Ts?accyFKbqLfY`kziUts#kPNG#sQ+@DjUjUlPkL$yS*$HbU;Bq6FXpvph$VaVT zeZ@ipC>{i5q{e}nc zu;(p+U8?>lv>;}$j#CR}ZgkIO+7y<%YMwE>CSo990oE1Wc(DeWZ`-w7+VEq4oK;*l zU!Q?Z2a#LfT_-HSWJD6m=!&c*^i?)Xmz{2;q36j*{O9v676e`0`ejQqA=#S-fVo#( z6hn8EDA{GiQexQBw~59DvxgAH;)>f!5(eMy+zAC*u$K2M7Cf7{*PfKv-#jgMI?z{d z_Azm3cC3dtoJ8b%E9JLzt}Nvg{I~O3G;%PMcWMLIc?+CJsW{M&d?JhUdQ=*Yi?POP z8Ot=ti|LWPtce7+FJ&jyLf70d+Ih;ec?YqV*zxlmd*?ez$)bl0J~t}@XJ2tfYNG{x zs8r3wcP3UIoy3#)K9~UR=iB+cvGQDu(Kpf2O|^p-0#(4y-*e7ht-kDu zMx}30s+-OI#-2CCZD$&1HuR~0A7{94Hq$&P^2m{|&Ido*)i!S}0PID7puGPqi;xt{ zc>O&=eN=osMznIXV<3R?)ctLSDEc=)iV#QE$erO{s1bL;MfYkY7nn@lmOGh%ER@>c zNT+1GE&O(lb=kl!*ap7&el}sEp{qD|PG1=fHEPLSLo^t1Aq9RNaVR@1(QG7od<_!5 zh%D$YlJ+DcD0%T_mw~x8niF$M3b{17U>S*~Vazmg_4RhRynbxZZW2hf?=+|d%}6eD z4vZrDa_<60al zk0phCWfKqL3;}1fY)`LSo(;Ik_RkeIoUA`(Q-^G)-X74uy*kFsi^YkLe?m9b5{pV- zW2;cv*HBZc!42By%HhLDy}IgG@5S8k)V~q3S;@j(%}jX3x??)}8Q4#f(%D7KEBU z)*M4U{spGy2}{o<#YG9p*kr8va_!-0rxZ2KJY6IKJ59DHjXQlO_R{Wm1a+;W}=2R|x+GXB- z16Z?1&DtN48;9`7-3W*znLr_Huoyal8!P^)S@PfJ`YbKN#goCY_O_i(9T?FEY~o+} z>9-cWk}Ee{6MRqwyzjQuR1$o>8@$pGvFyb`1m{x1+u4Y}BH?u9&a`7iE`qe0m&H@k1T$VBB^Z3Z>=7Wak6#YZk>Y?O+ECYy0GHcn5DsyNGi) zkooqz1AI!T&}Ub(4B_@5pl`kDd@>=2jDBqQQh5vX9E<+ZZUeoGKG{p7l&CK|W`ags zD|{hq9gHvBPYW-)T__R5;T5x=znddH7MQW_G!aLZ=l+$&j5|2+dj1*F&6jmV0Se7a zG6Fh`nDb#IfTiLCux|%NnAvriLVpIS83cFg)|L|D{Xhd<%T(HB^{bJHVpEX($GG;p zFEM!hhEnhCpo>V|5EMs{2_LZ&uOcDgwIFjb0 zWi!78%%^Z4^|C{caFKjINRGS1Z962Mrn8Z;-=x+C?KEtb8^-PWbU6tV3(N832JOaN z=_BVcZ&2x)kammy#`K-2`G0KdHRY4@e#QXw!_x!%teVZP+xs%jH+_=Zsluosjez)% zqwFS#95^2E43f|E_H-FpPbtXTKNH%)7Kvr{-NtJogHC<2AD-h)ll-}dj47nwiZ^l= z%X+>C6*hhpvOmWL8FdsT?&DMLdvn)3XB!c&cyD?`j(?3VI?V)2-5Tq{M_RI6jYKFx zGnIH#5AF*L*;Az&=t)jaj<-!djW6i47UbGm>Q5Xr!;XCaJpH=B1W%{TNCSlzX(Obr zipWvDDVMl`e5d9(kLP{hubdkGDRoHaB%YNTEhMC3p{&q6BK%F!K>-jh{6DDN=-{!-`gvQElpl9o62UpiphvdRTm^zhiJ#ltzdXd534t(UR4A3nL3QgMmO0jvX z-d5REMOT#&Yb_q+3L$S=E@v&e%#J*3WMrn__ziOypj!*;$?45RHkp9_JfBwubE!vK z0g;7JhAV=z+X*4vA8m~nO0AmcGqydNb?HYW$V&0QFsE6dFKrLM3BT(Nb#YBT!us=( z7x>ll(UL)rGd1#+Ux@M9EftJ<(y%s!OJl79d2Ye36YkyKx|F_ZX>at6np~dTAuiep z2nj#iEjIx+x+5-OvnG%T;rB~Je+u zouJeOA7~HhVD?T^xGe;?Ys);1%k}D^42?(tZ-$E$*o1LIyd43(pe!rg;>1Mkir)nW z1)0!>%4&Ug|B-+|rdmh! z<JuCQ##FshK4rR;>nZl z1!CUbyu=f`d_Yc4KKPp43pu05H>YE)MzqFW`!Bk?yJ=ZjvC3OcFx#$nD7NV`tgNh9 zho+wIn8O`-&(vJpwB-w;Rg`;L)bJ#`t=CzGDe?g}AMm{Szi>}h&|SSRhQ-gPad}?x z`CJ_F?6EeFol!*HQMQyQ6LU~^ZDf6HP4C_c33I5FNYk#d%Z*aN6SMLqv1(@>q74PPT`*op;`D zFC}o8v_&g?d%4~bi0YpDt-SU8nR2Q?=CBUM-#>k^&K4LajtED?A~79H7gf~xg5;(! z(@bXwI?IvY#rfYzKaqRYfGpFXBIEn=`k)+oGQ`P>cV+mv;AgMb73JDZz_XuGj=WjU zIt3tv75VY!Uwnja^fVwFDTLgQ zN`^Cj{3smu22C+fl^W;>@>}u~%-8O1#))f7!H(B~-XG2f-|A)7RG#3GZ}$4;`n zXlc{dA$f73zfK!eN*rPL&ZJ&wo48K~WT8s$UA2VCR5Eoga4W&5- zR@*DfG8%SRCRd)qZ^^D_#TRD}k00E~i9}i91+S~J_lF!V)Bu-X>_?!o>AkK^g&>-KK9IsMf>SNQ~ohHjkgPY%k1UzrY(NPHW} z@hRb;L85iEP*iPy`Tr_x$ZCidZu_L`K%7)PU3onupboa9Nt3!mhaYO#IXI0MkJ&NI zIKu!8KL==yax5_rA{%rfv>RuQ<{d@+hs*K_@^J&YFWy(K>^)Ym9^j;X{P^)kx&LkP ziLCB?Q;XlNS8ht!&6c#=_7`{f7t16QRW^DcEIUrD$Vc62y$g*}*bQ6M`&^R)yd|4v z6TwkbZQSYwxHwv_uko6-__Lt#hGPrkJbT@+jZ1Sv7Zi6hce~W+thjfzxQfVgLH{A< zE7S%*5`JMg`?xotZ>`2s+{|8Sa);M^{6ZQ|icgfN+}%tn#buqXFK&RKh+D8?%?Kh& z_2b>NfjanbKMZ@jD-$pa9G`l^$xh~vaw-bRqqG#jMgCXhQL1+gm-Y?J7oxv*>gG}+8W8fl)?OA7MC+I8h zeR~Kp0_lTlY@h~BE`<}%*bOc$=HfeFGBV0P;X$s^vWA9BF~VH^aWj?|c!iFey@Nhg z&2N4u^?V}CSLWQXPn$7cxU-Y!l8rCGD%;qo)Vds7D)w*$OS~pL)h#6j^F&>G!%hS# z=P5&_LCH>NBC*i);))ONP&kG_ji~`z8L^!$k1B01Ga*d=B|lGJ;HFjQUls43Z;G3l zOm#kErKOel7-C%e>HCD`n>r>MK_{8UHwP2BQBJtTzT9f*I#o*XHbxxE=>}DCHQ?&i zR&V#IVjUH|GIz*|;z3=@uW!4>H&rDfCfh>ycf3HF?Vri`Epfoh#1NO8iaL1YE_rW% zWcm1T7!X<}dv3nfZ(f2Zk;qZCx%N2qNIyzcojHoL}I z2It;xq~4pV#gjw8F@)~C#SkYIx7HDOF~*<8cZa*fjYY?I8=2?MCGe?%Xu78f1D4Lm zz`47WkY9VuWJ|R~LZY{vl>6K?)#-LcZ~0=ALtX?qbJ_dQ^ z-qGE?@9t*oj>+U@f>DqK+5Kgz&_~aqBjBMTKdz@0-aM&(=w|(@AH0`TH){1(dM3g! z3Cw9Ea~@AE?$_cp_Q_KjG3$Rzs$XYQ7z|nX^`BZ6?>q9ol-f~KQ-f3wwSQEtsQi^n zoXRKq{@F6v{P^dc6!&?+e{HourXP@6gEMpH+8=D$Y}T^NoPWKo#=KXP!Jq4PQT&Y~ z)|K;0ZQB3!fa+=CL^;`!6bn|5Q@^7Y_KN${P79-*1Qh^p@RE9sRq2JG@ahIky^~OwI?$p&+X)Qzm8l G`QHF>>>>>> 38e21e1... Initial release runs-on: ubuntu-latest steps: @@ -17,7 +22,10 @@ jobs: id: build run: | docker build --no-cache -t ${DOCKERHUB}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} . +<<<<<<< HEAD +======= +>>>>>>> 38e21e1... Initial release - name: Push image if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }} run: | @@ -27,4 +35,8 @@ jobs: echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin # Push all of the tags docker push ${DOCKERHUB}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} +<<<<<<< HEAD docker push ${DOCKERHUB}:${BASEIMAGE}-${MODNAME} +======= + docker push ${DOCKERHUB}:${BASEIMAGE}-${MODNAME} +>>>>>>> 38e21e1... Initial release diff --git a/README.md b/README.md index 85e0b11..fdb191d 100644 --- a/README.md +++ b/README.md @@ -1,144 +1,57 @@ -A [Docker Mod](https://github.com/linuxserver/docker-mods) for the LinuxServer.io Radarr/Sonarr Docker container that adds a script to automatically strip out unwanted audio and subtitle streams, keeping only the desired languages. -Chapters, if they exist, are preserved. The Title attribute in the MKV is set to the movie title plus year (ex: `The Sting (1973)`) or the series title plus episode information (ex: `Happy! 01x01 - What Smiles Are For`). +A [Docker Mod](https://github.com/linuxserver/docker-mods) for the LinuxServer.io Lidarr Docker container that adds a script to automatically convert downloaded FLAC files to MP3s using ffmpeg. Default quality is 320Kbps. -**One unified script works in both Radarr and Sonarr. Use this mod in either container!** >**NOTE:** This mod support Linux OSes only. Container info: -![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/linuxserver/mods/radarr-striptracks) +![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/linuxserver/mods/lidarr-flac2mp3)) # Installation ->**NOTE:** See the [Sonarr/Radarr v3 Builds](./README.md#sonarrradarr-v3-builds) section below for important differences to these instructions for v3 builds. - -1. Pull your selected container ([linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "LinuxServer.io's Radarr container") or [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "LinuxServer.io's Sonarr container")) from Docker Hub: - `docker pull linuxserver/radarr:latest` OR - `docker pull linuxserver/sonarr:latest` +1. Pull the [linuxserver/lidarr](https://hub.docker.com/r/linuxserver/lidarr "LinuxServer.io's Lidarr container") docker image from Docker Hub: + `docker pull linuxserver/lidarr:latest` 2. Configure the Docker container with all the port, volume, and environment settings from the *original container documentation* here: - **[linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container")** - **[linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container")** + **[linuxserver/lidarr](https://hub.docker.com/r/linuxserver/lidarr "Docker container")** 1. Add the **DOCKER_MODS** environment variable to the `docker create` command, as follows: - `-e DOCKER_MODS=linuxserver/mods:radarr-striptracks` + `-e DOCKER_MODS=linuxserver/mods:lidarr-flac2mp3` *Example Synology Configuration* - ![striptracks](.assets/striptracks-synology.png "Synology container settings") + ![flac2mp3](.assets/lidarr-synology.png "Synology container settings") 2. Start the container. -3. After all of the above configuration is complete, to use mkvmerge: - 1. Configure a custom script from the Radarr/Sonnar Settings->Connect screen and type the following in the **Path** field: - `/usr/local/bin/striptracks.sh` - - 2. Add the codes for the audio and subtitle languages you want to keep as **Arguments** (details in the [Syntax](./README.md#syntax) section below): - Suggested Example - **`:eng:und :eng`** +3. After all of the above configuration is complete, to use ffmpeg, configure a custom script from the Settings->Connect screen and type the following in the **Path** field: + `/usr/local/bin/flac2mp3.sh` ## Usage ->**NOTE:** See the [Sonarr/Radarr v3 Builds](./README.md#sonarrradarr-v3-builds) section below for important differences to these instructions for v3 builds. +New file(s) with an MP3 extension will be placed in the same directory as the original FLAC file(s). Existing MP3 files with the same track name will be overwritten. -The source video can be any mkvtoolnix supported video format. The output is an MKV file with the same name. - -If you've configured the Radarr/Sonarr Recycle Bin path correctly, the original video will be moved there. -![warning24] **NOTE:** If you have *not* configured the Recycle Bin, the original video file will be deleted/overwritten and permanently lost. +If you've configured the Lidarr Recycle Bin path correctly, the original video will be moved there. +![warning24] **NOTE:** If you have *not* configured the Recycle Bin, the original FLAC audio file(s) will be deleted and permanently lost. ### Syntax -The script accepts two arguments and one option in the **Arguments** field: +>**Note:** The **Arguments** field for Custom Scripts was removed in Lidarr release [v0.7.0.1347](https://github.com/lidarr/Lidarr/commit/b9d240924f8965ebb2c5e307e36b810ae076101e "Lidarr commit notes") due to security concerns. +To support options with this version and later, a wrapper script can be manually created that will call *flac2mp3.sh* with the required arguments. -`[-d] ` +The script accepts two options which may be placed in the **Arguments** field: -The arguments are language codes in [ISO639-2](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes "List of ISO 639-2 codes") format. -These are three letter abbreviations prefixed with a colon ':', such as: +`[-d] [-b ]` -* :eng -* :fre -* :spa - -...etc. - -Multiple codes may be concatenated, such as `:eng:spa` for both English and Spanish. - -It is suggested to use `:eng:und :eng` if you are unsure of what to choose. This will keep English and Undetermined audio and English subtitles, if they exist. ->**NOTE:** The script is smart enough to not remove the last audio track. This way you don't have to specify every possible language if you are importing a -foreign film, for example. +The `-b bitrate` option, if specified, sets the output quality in bits per second. If no `-b` option is specified, the script will default to 320Kbps. The `-d` option enables debug logging. ### Examples ``` -:eng:und :eng # keep English and Undetermined audio and English subtitles --d :eng "" # Enable debugging, keeping English audio and no subtitles -:eng:kor:jpn :eng:spa # Keep English, Korean, and Japanese audio, and English and - Spanish subtitles +-b 320k # Output 320 kilobits per second MP3 (same as default behavior) +-d -b 160k # Enable debugging, and output 160 kilobits per second MP3 ``` -## Triggers -The only events/notification triggers that have been tested are **On Download** and **On Upgrade** - -![striptracks](.assets/striptracks-v2-custom-script.png "Radarr/Sonarr custom script settings") - -## Logs -A log file is created for the script activity called: - -`/config/logs/striptracks.txt` - -This log can be inspected or downloaded from the Radarr/Sonarr GUI under System->Logs->Files - -Script errors will show up in both the script log and the native Radarr/Sonarr log. - -Log rotation is performed with 5 log files of 512KB each being kept. ->![warning24] **NOTE:** If debug logging is enabled, the log file can grow very large very quickly. *Do not leave debug logging enabled permanently.* - -___ - -## Sonarr/Radarr v3 Builds ->![warning] **Warning: Unstable Releases** ![warning] ->The Sonarr/Radarr v3 Builds are the unstable releases (Aphrodite and Phantom) of Radarr and Sonarr. Though the mod works with all versions of the container, I cannot guarantee these releases are stable. - -Important differences for Sonarr/Radarr v3 Builds -### Mod installation -Substitute the following steps for those noted in the [Installation](./README.md#installation) section above. -1. Pull your selected container ([linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "LinuxServer.io's Radarr container") or [linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "LinuxServer.io's Sonarr container")) from Docker Hub: - `docker pull linuxserver/radarr:preview` OR - `docker pull linuxserver/sonarr:preview` - -2. Configure the Docker container with all the port, volume, and environment settings from the *original container documentation* here: - **[linuxserver/radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container")** - **[linuxserver/sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container")** - 1. Add the **DOCKER_MODS** environment variable to the `docker create` command, as follows: - `-e DOCKER_MODS=linuxserver/mods:radarr-striptracks` - - *Example Synology Configuration* - ![striptracks](.assets/striptracks-synology.png "Synology container settings") - - 2. Start the container. - -3. After the above configuration is complete, to use mkvmerge, configure a custom script from the Settings->Connect screen and type the following in the **Path** field: - - `/usr/local/bin/striptracks-eng.sh` - - This is a wrapper script that calls striptracks.sh with the following arguments, which keep English audio and subtitles only! - `:eng:und :eng` - - *For any other combinations of audio and subtitles you **must** either use one of the [included wrapper scripts](./README.md#included-wrapper-scripts) or - create a custom script with the codes for the languages you want to keep. See the [Syntax](./README.md#syntax) section above. - Do not put `striptracks.sh` in the **Path** field!* - -### Included Wrapper Scripts ->**NOTE:** The **Arguments** field for Custom Scripts was removed in Radarr and Sonarr v3 due to security concerns. To support options with this version and later, -a wrapper script can be manually created that will call *striptracks.sh* with the required arguments. - -For your convenience, several wrapper scripts are included in the `/usr/local/bin/` directory. -You may use any of these scripts in place of the `striptracks-eng.sh` mentioned in the [Mod installation](./README.md#mod-installation) section above. +### Included Wrapper Script +For your convenience, a wrapper script to enable debugging is included in the `/usr/local/bin/` directory. +Use this script in place of the `flac2mp3.sh` mentioned in the [Installation](./README.md#installation) section above. ``` -striptracks-dut.sh # Keep Dutch audio and subtitles -striptracks-eng.sh # Keep English and Undetermined audio and English subtitles -striptracks-eng-debug.sh # Keep English and Undetermined audio and English subtitles, and enable debug logging -striptracks-eng-jpn.sh # Keep English, Japanese, and Undetermined audio and English subtitles -striptracks-fre.sh # Keep French audio and subtitles -striptracks-fre-debug.sh # Keep French audio and subtitles, and enable debug logging -striptracks-ger.sh # Keep German audio and subtitles -striptracks-spa.sh # Keep Spanish audio and subtitles +flac2mp3-debug.sh # Enable debugging ``` ### Example Wrapper Script @@ -146,31 +59,33 @@ To configure the last entry from the [Examples](./README.md#examples) section ab ``` #!/bin/bash -. /usr/local/bin/striptracks.sh :eng:kor:jpn :eng:spa +. /usr/local/bin/flac2mp3.sh -d -b 160k ``` -Then put `/usr/local/bin/wrapper.sh` in the **Path** field in place of `/usr/local/bin/striptracks-eng.sh` mentioned in the [Mod installation](./README.md#mod-installation) section above. +Then put `/usr/local/bin/wrapper.sh` in the **Path** field in place of `/usr/local/bin/flac2mp3.sh` mentioned in the [Installation](./README.md#installation) section above. -### Preview Triggers -The only events/notification triggers that have been tested are **On Import** and **On Upgrade** +### Triggers +The only events/notification triggers that have been tested are **On Release Import** and **On Upgrade** -![striptracks](.assets/striptracks-v3-custom-script.png "Radarr/Sonarr custom script settings") +![lidarr-flac2mp3](.assets/lidarr-custom-script.png "Lidarr Custom Script dialog") -### Preview Logs -The log can be inspected or downloaded from the Radarr/Sonarr GUI under System->Log Files +### Logs +A log file is created for the script activity called: + +`/config/logs/flac2mp3.txt` + +This log can be downloaded from the Lidarr GUI under System->Log Files + +Log rotation is performed, with 5 log files of 1MB each kept, matching Lidarr's log retention. +>![warning24] **NOTE:** If debug logging is enabled, the log file can grow very large very quickly. *Do not leave debug logging enabled permanently.* ___ - # Credits - This would not be possible without the following: -[Radarr](http://radarr.video/ "Radarr homepage") -[Sonarr](http://sonarr.tv/ "Sonarr homepage") -[LinuxServer.io Radarr](https://hub.docker.com/r/linuxserver/radarr "Radarr Docker container") container -[LinuxServer.io Sonarr](https://hub.docker.com/r/linuxserver/sonarr "Sonarr Docker container") container +[Lidarr](https://lidarr.audio/ "Lidarr homepage") +[LinuxServer.io Lidarr](https://hub.docker.com/r/linuxserver/lidarr "Lidarr Docker container") container [LinuxServer.io Docker Mods](https://hub.docker.com/r/linuxserver/mods "Docker Mods containers") project -[MKVToolNix](https://mkvtoolnix.download/ "MKVToolNix homepage") by Moritz Bunkus -The AWK script parsing mkvmerge output is adapted from Endoro's post on [VideoHelp](https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889). +[ffmpeg](https://ffmpeg.org/ "FFMpeg homepage") [warning]: http://files.softicons.com/download/application-icons/32x32-free-design-icons-by-aha-soft/png/32/Warning.png "Warning" [warning24]: http://files.softicons.com/download/toolbar-icons/24x24-free-pixel-icons-by-aha-soft/png/24x24/Warning.png "Warning" diff --git a/root/etc/cont-init.d/98-flac2mp3 b/root/etc/cont-init.d/98-flac2mp3 new file mode 100644 index 0000000..7943d61 --- /dev/null +++ b/root/etc/cont-init.d/98-flac2mp3 @@ -0,0 +1,46 @@ +#!/usr/bin/with-contenv bash + +cat <>> Flac2MP3 Mod by TheCaptain989 <<< +Repo: https://github.com/linuxserver/docker-mods/tree/lidarr-flac2mp3 + +Version: $(cat /etc/version.tc989) +---------------- +EOF + +# Determine if setup is needed +if [ ! -f /usr/bin/ffmpeg ]; then + echo "Running first time setup." + + if [ -f /usr/bin/apt ]; then + # Ubuntu + echo "Installing ffmpeg using apt-get" + apt-get update && \ + apt-get -y install ffmpeg && \ + rm -rf /var/lib/apt/lists/* + elif [ -f /sbin/apk ]; then + # Alpine + echo "Installing ffmpeg using apk" + apk add --no-cache ffmpeg && \ + rm -rf /var/lib/apt/lists/* + else + # Unknown + echo "Unknown package manager. Attempting to install ffmpeg using apt-get" + apt-get update && \ + apt-get -y install ffmpeg && \ + rm -rf /var/lib/apt/lists/* + fi +fi + +# Change ownership +if [ $(stat -c '%G' /usr/local/bin/flac2mp3.sh) != "abc" ]; then + echo "Changing ownership on scripts." + chown abc:abc /usr/local/bin/flac2mp3*.sh +fi + +# Make executable +if [ ! -x /usr/local/bin/flac2mp3.sh ]; then + echo "Making scripts executable." + chmod +x /usr/local/bin/flac2mp3*.sh +fi diff --git a/root/etc/cont-init.d/98-striptracks b/root/etc/cont-init.d/98-striptracks deleted file mode 100644 index 8aa9ba1..0000000 --- a/root/etc/cont-init.d/98-striptracks +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/with-contenv bash - -cat <>> Striptracks Mod by TheCaptain989 <<< -Repo: https://github.com/linuxserver/docker-mods/tree/radarr-striptracks - -Version: $(cat /etc/version.tc989) ----------------- -EOF - -# Determine if setup is needed -if [ ! -f /usr/bin/mkvmerge ]; then - echo "Running first time setup." - - if [ -f /usr/bin/apt ]; then - # Ubuntu - echo "Installing MKVToolNix using apt-get" - apt-get update && \ - apt-get -y install mkvtoolnix && \ - rm -rf /var/lib/apt/lists/* - elif [ -f /sbin/apk ]; then - # Alpine - echo "Installing MKVToolNix using apk" - apk add --no-cache mkvtoolnix && \ - rm -rf /var/lib/apt/lists/* - else - # Unknown - echo "Unknown package manager. Attempting to install MKVToolNix using apt-get" - apt-get update && \ - apt-get -y install mkvtoolnix && \ - rm -rf /var/lib/apt/lists/* - fi -fi - -# Change ownership -if [ $(stat -c '%G' /usr/local/bin/striptracks.sh) != "abc" ]; then - echo "Changing ownership on scripts." - chown abc:abc /usr/local/bin/striptracks*.sh -fi - -# Make executable -if [ ! -x /usr/local/bin/striptracks.sh ]; then - echo "Making scripts executable." - chmod +x /usr/local/bin/striptracks*.sh -fi - diff --git a/root/usr/local/bin/flac2mp3-debug.sh b/root/usr/local/bin/flac2mp3-debug.sh new file mode 100644 index 0000000..bb698ee --- /dev/null +++ b/root/usr/local/bin/flac2mp3-debug.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +. /usr/local/bin/flac2mp3.sh -d diff --git a/root/usr/local/bin/flac2mp3.sh b/root/usr/local/bin/flac2mp3.sh new file mode 100644 index 0000000..02b5891 --- /dev/null +++ b/root/usr/local/bin/flac2mp3.sh @@ -0,0 +1,256 @@ +#!/bin/bash + +# Script to convert FLAC files to MP3 using FFMpeg +# https://github.com/linuxserver/docker-mods/tree/lidarr-flac2mp3 +# Can also process MP3s and tag them appropriately +# Resultant MP3s are fully tagged + +# Dependencies: +# ffmpeg +# awk +# stat +# nice + +# Exit codes: +# 0 - success; or test +# 1 - no tracks files specified on command line +# 2 - mkvmerge not found +# 10 - awk script generated an error + +### Variables +export flac2mp3_script=$(basename "$0") +export flac2mp3_pid=$$ +export flac2mp3_config=/config/config.xml +export flac2mp3_log=/config/logs/flac2mp3.txt +export flac2mp3_maxlogsize=1024000 +export flac2mp3_maxlog=4 +export flac2mp3_debug=0 +export flac2mp3_tracks="$lidarr_addedtrackpaths" +[ -z "$flac2mp3_tracks" ] && flac2mp3_tracks="$lidarr_trackfile_path" # For other event type +export flac2mp3_recyclebin=$(sqlite3 /config/lidarr.db 'SELECT Value FROM Config WHERE Key="recyclebin"') +RET=$?; [ "$RET" != 0 ] && >&2 echo "WARNING[$RET]: Unable to read recyclebin information from database \"/config/lidarr.db\"" + +### Functions +function usage { + usage=" +$flac2mp3_script +Audio conversion script designed for use with Bazarr + +Source: https://github.com/TheCaptain989/lidarr-flac2mp3 + +Usage: + $0 [-d] [-b ] + +Arguments: + bitrate # output quality in bits per second (SI units) + +Options: + -d # enable debug logging + -b # set bitrate; default 320K + +Examples: + $flac2mp3_script -b 320k # Output 320 kilobits per second MP3 + (same as default behavior) + $flac2mp3_script -d -b 160k # Enable debugging, and output quality + 160 kilobits per second +" + >&2 echo "$usage" +} +# Can still go over flac2mp3_maxlog if read line is too long +# Must include whole function in subshell for read to work! +function log {( + while read + do + echo $(date +"%y-%-m-%-d %H:%M:%S.%1N")\|"[$flac2mp3_pid]$REPLY" >>"$flac2mp3_log" + local FILESIZE=$(stat -c %s "$flac2mp3_log") + if [ $FILESIZE -gt $flac2mp3_maxlogsize ] + then + for i in `seq $((flac2mp3_maxlog-1)) -1 0` + do + [ -f "${flac2mp3_log::-4}.$i.txt" ] && mv "${flac2mp3_log::-4}."{$i,$((i+1))}".txt" + done + [ -f "${flac2mp3_log::-4}.txt" ] && mv "${flac2mp3_log::-4}.txt" "${flac2mp3_log::-4}.0.txt" + touch "$flac2mp3_log" + fi + done +)} +# Inspired by https://stackoverflow.com/questions/893585/how-to-parse-xml-in-bash +function read_xml { + local IFS=\> + read -d \< ENTITY CONTENT +} +# Initiate API Rescan request +function rescan { + MSG="Info|Calling Lidarr API to rescan artist" + echo "$MSG" | log + [ $flac2mp3_debug -eq 1 ] && echo "Debug|Forcing rescan of artist '$lidarr_artist_id'. Calling Lidarr API 'RefreshArtist' using POST and URL 'http://$flac2mp3_bindaddress:$flac2mp3_port$flac2mp3_urlbase/api/v1/command?apikey=(removed)'" | log + RESULT=$(curl -s -d "{name: 'RefreshArtist', artistId: $lidarr_artist_id}" -H "Content-Type: application/json" \ + -X POST http://$flac2mp3_bindaddress:$flac2mp3_port$flac2mp3_urlbase/api/v1/command?apikey=$flac2mp3_apikey) + [ $flac2mp3_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log + JOBID="$(echo $RESULT | jq -crM .id)" + if [ "$JOBID" != "null" ]; then + local RET=0 + else + local RET=1 + fi + return $RET +} +# Check result of rescan job +function check_rescan { + local i=0 + for ((i=1; i <= 15; i++)); do + [ $flac2mp3_debug -eq 1 ] && echo "Debug|Checking job $JOBID completion, try #$i. Calling Lidarr API using GET and URL 'http://$flac2mp3_bindaddress:$flac2mp3_port$flac2mp3_urlbase/api/command/$JOBID?apikey=(removed)'" | log + RESULT=$(curl -s -H "Content-Type: application/json" \ + -X GET http://$flac2mp3_bindaddress:$flac2mp3_port$flac2mp3_urlbase/api/v1/command/$JOBID?apikey=$flac2mp3_apikey) + [ $flac2mp3_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log + if [ "$(echo $RESULT | jq -crM .status)" = "completed" ]; then + local RET=0 + break + else + if [ "$(echo $RESULT | jq -crM .status)" = "failed" ]; then + local RET=2 + break + else + local RET=1 + sleep 1 + fi + fi + done + return $RET +} +# Process options +while getopts ":db:" opt; do + case ${opt} in + d ) # For debug purposes only + MSG="Debug|Enabling debug logging." + echo "$MSG" | log + >&2 echo "$MSG" + flac2mp3_debug=1 + printenv | sort | sed 's/^/Debug|/' | log + ;; + b ) # Set bitrate + flac2mp3_bitrate="$OPTARG" + ;; + : ) + MSG="Error|Invalid option: -$OPTARG requires an argument" + echo "$MSG" | log + >&2 echo "$MSG" + ;; + esac +done +shift $((OPTIND -1)) + +# Set default bitrate +[ -z "$flac2mp3_bitrate" ] && flac2mp3_bitrate="320k" + +if [[ "$lidarr_eventtype" = "Test" ]]; then + echo "Info|Lidarr event: $lidarr_eventtype" | log + echo "Info|Script was test executed successfully." | log + exit 0 +fi + +if [ -z "$flac2mp3_tracks" ]; then + MSG="Error|No track file(s) specified! Not called from Lidarr?" + echo "$MSG" | log + >&2 echo "$MSG" + usage + exit 1 +fi + +if [ ! -f "/usr/bin/ffmpeg" ]; then + MSG="Error|/usr/bin/ffmpeg is required by this script" + echo "$MSG" | log + >&2 echo "$MSG" + exit 2 +fi + +# Legacy one-liner script +#find "$lidarr_artist_path" -name "*.flac" -exec bash -c 'ffmpeg -loglevel warning -i "{}" -y -acodec libmp3lame -b:a 320k "${0/.flac}.mp3" && rm "{}"' {} \; + +#### MAIN +echo "Info|Lidarr event: $lidarr_eventtype, Artist: $lidarr_artist_name ($lidarr_artist_id), Album: $lidarr_album_title ($lidarr_album_id), Export bitrate: $flac2mp3_bitrate, Tracks: $flac2mp3_tracks" | log +echo "$flac2mp3_tracks" | awk -v Debug=$flac2mp3_debug \ +-v Recycle="$flac2mp3_recyclebin" \ +-v Bitrate=$flac2mp3_bitrate ' +BEGIN { + FFMpeg="/usr/bin/ffmpeg" + FS="|" + RS="|" + IGNORECASE=1 +} +/\.flac/ { + Track=$1 + sub(/\n/,"",Track) + NewTrack=substr(Track, 1, length(Track)-5)".mp3" + print "Info|Writing: "NewTrack + if (Debug) print "Debug|Executing: nice "FFMpeg" -loglevel error -i \""Track"\" "CoverCmds1"-map 0 -y -acodec libmp3lame -b:a "Bitrate" -write_id3v1 1 -id3v2_version 3 "CoverCmds2"\""NewTrack"\"" + Result=system("nice "FFMpeg" -loglevel error -i \""Track"\" "CoverCmds1"-map 0 -y -acodec libmp3lame -b:a "Bitrate" -write_id3v1 1 -id3v2_version 3 "CoverCmds2"\""NewTrack"\" 2>&1") + if (Result) { + print "Error|"Result" converting \""Track"\"" + } else { + if (Recycle=="") { + if (Debug) print "Debug|Deleting: \""Track"\"" + system("[ -s \""NewTrack"\" ] && [ -f \""Track"\" ] && rm \""Track"\"") + } else { + match(Track,/^\/?[^\/]+\//) + RecPath=substr(Track,RSTART+RLENGTH) + sub(/[^\/]+$/,"",RecPath) + RecPath=Recycle RecPath + if (Debug) print "Debug|Moving: \""Track"\" to \""RecPath"\"" + system("[ ! -e \""RecPath"\" ] && mkdir -p \""RecPath"\"; [ -s \""NewTrack"\" ] && [ -f \""Track"\" ] && mv -t \""RecPath"\" \""Track"\"") + } + } +} +' | log + +RET="${PIPESTATUS[1]}" # captures awk exit status +if [ $RET != "0" ]; then + # Check for script completion and non-empty file + MSG="Error|Script exited abnormally. File permissions issue?" + echo "$MSG" | log + >&2 echo "$MSG" + exit 10 +fi + +# Call Lidarr API to RescanArtist +if [ ! -z "$lidarr_artist_id" ]; then + if [ -f "$flac2mp3_config" ]; then + # Read Lidarr config.xml + while read_xml; do + [[ $ENTITY = "Port" ]] && flac2mp3_port=$CONTENT + [[ $ENTITY = "UrlBase" ]] && flac2mp3_urlbase=$CONTENT + [[ $ENTITY = "BindAddress" ]] && flac2mp3_bindaddress=$CONTENT + [[ $ENTITY = "ApiKey" ]] && flac2mp3_apikey=$CONTENT + done < $flac2mp3_config + + [[ $flac2mp3_bindaddress = "*" ]] && flac2mp3_bindaddress=localhost + + # Scan the disk for the new audio tracks + if rescan; then + # Check that the rescan completed + if ! check_rescan; then + # Timeout or failure + MSG="Warn|Lidarr job ID $JOBID timed out or failed." + echo "$MSG" | log + >&2 echo "$MSG" + fi + else + # Error from API + MSG="Error|The 'RefreshArtist' API with artist $lidarr_artist_id failed." + echo "$MSG" | log + >&2 echo "$MSG" + fi + else + MSG="Warn|Unable to locate Lidarr config file: '$flac2mp3_config'" + echo "$MSG" | log + >&2 echo "$MSG" + fi +else + MSG="Warn|Missing environment variable lidarr_artist_id" + echo "$MSG" | log + >&2 echo "$MSG" +fi + +# Cool bash feature +MSG="Info|Completed in $(($SECONDS/60))m $(($SECONDS%60))s" +echo "$MSG" | log diff --git a/root/usr/local/bin/striptracks-dut.sh b/root/usr/local/bin/striptracks-dut.sh deleted file mode 100644 index e2c19af..0000000 --- a/root/usr/local/bin/striptracks-dut.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh :dut :dut diff --git a/root/usr/local/bin/striptracks-eng-debug.sh b/root/usr/local/bin/striptracks-eng-debug.sh deleted file mode 100644 index 87ed2bb..0000000 --- a/root/usr/local/bin/striptracks-eng-debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh -d :eng:und :eng diff --git a/root/usr/local/bin/striptracks-eng-jpn.sh b/root/usr/local/bin/striptracks-eng-jpn.sh deleted file mode 100644 index ea37f5d..0000000 --- a/root/usr/local/bin/striptracks-eng-jpn.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh :eng:jpn:und :eng diff --git a/root/usr/local/bin/striptracks-eng.sh b/root/usr/local/bin/striptracks-eng.sh deleted file mode 100644 index a0eb344..0000000 --- a/root/usr/local/bin/striptracks-eng.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh :eng:und :eng diff --git a/root/usr/local/bin/striptracks-fre-debug.sh b/root/usr/local/bin/striptracks-fre-debug.sh deleted file mode 100644 index 918a198..0000000 --- a/root/usr/local/bin/striptracks-fre-debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh -d :fre:fra :fre:fra diff --git a/root/usr/local/bin/striptracks-fre.sh b/root/usr/local/bin/striptracks-fre.sh deleted file mode 100644 index 998ce43..0000000 --- a/root/usr/local/bin/striptracks-fre.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh :fre:fra :fre:fra diff --git a/root/usr/local/bin/striptracks-ger.sh b/root/usr/local/bin/striptracks-ger.sh deleted file mode 100644 index 62047ab..0000000 --- a/root/usr/local/bin/striptracks-ger.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh :ger:deu :ger:deu diff --git a/root/usr/local/bin/striptracks-spa.sh b/root/usr/local/bin/striptracks-spa.sh deleted file mode 100644 index 92f6c4e..0000000 --- a/root/usr/local/bin/striptracks-spa.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -. /usr/local/bin/striptracks.sh :spa :spa diff --git a/root/usr/local/bin/striptracks.sh b/root/usr/local/bin/striptracks.sh deleted file mode 100644 index 9d9034b..0000000 --- a/root/usr/local/bin/striptracks.sh +++ /dev/null @@ -1,489 +0,0 @@ -#!/bin/bash - -# Video remuxing script designed for use with Radarr and Sonarr -# Automatically strips out unwanted audio and subtitle streams, keeping only the desired languages. -# https://github.com/linuxserver/docker-mods/tree/radarr-striptracks - -# Adapted and corrected from Endoro's post 1/5/2014: -# https://forum.videohelp.com/threads/343271-BULK-remove-non-English-tracks-from-MKV-container#post2292889 -# -# Put a colon `:` in front of every language code. Expects ISO639-2 codes - -# Dependencies: -# mkvmerge -# awk -# curl -# jq -# numfmt -# stat -# nice - -# Exit codes: -# 0 - success; or test -# 1 - no video file specified on command line -# 2 - no audio language specified on command line -# 3 - no subtitle language specified on command line -# 4 - mkvmerge not found -# 5 - specified video file not found -# 6 - unable to rename video to temp video -# 10 - remuxing completed, but no output file found -# 20 - general error - -### Variables -export striptracks_script=$(basename "$0") -export striptracks_pid=$$ -export striptracks_arr_config=/config/config.xml -export striptracks_log=/config/logs/striptracks.txt -export striptracks_maxlogsize=512000 -export striptracks_maxlog=4 -export striptracks_debug=0 -export striptracks_type=$(printenv | sed -n 's/_eventtype *=.*$//p') -if [[ "${striptracks_type,,}" = "radarr" ]]; then - export striptracks_video="$radarr_moviefile_path" - export striptracks_api_endpoint="movie" - export striptracks_json_quality_root=".movieFile" - export striptracks_video_type="movie" - export striptracks_title="$radarr_movie_title ($radarr_movie_year)" -else - if [[ "${striptracks_type,,}" = "sonarr" ]]; then - export striptracks_video="$sonarr_episodefile_path" - export striptracks_api_endpoint="episodefile" - export striptracks_json_quality_root="" - export striptracks_video_type="series" - export striptracks_title="$sonarr_series_title $(numfmt --format "%02f" $sonarr_episodefile_seasonnumber)x$(numfmt --format "%02f" $sonarr_episodefile_episodenumbers) - $sonarr_episodefile_episodetitles" - fi -fi -export striptracks_api="Rescan${striptracks_video_type^}" -export striptracks_json_key="${striptracks_video_type}Id" -export striptracks_api_endpoint_idname="${striptracks_type,,}_${striptracks_api_endpoint}_id" -export striptracks_api_endpoint_id="${!striptracks_api_endpoint_idname}" -export striptracks_video_idname="${striptracks_type,,}_${striptracks_video_type}_id" -export striptracks_video_id="${!striptracks_video_idname}" -export striptracks_eventtype="${striptracks_type,,}_eventtype" -export striptracks_tempvideo="${striptracks_video}.tmp" -export striptracks_newvideo="${striptracks_video%.*}.mkv" -export striptracks_db="/config/${striptracks_type,,}.db" -if [ ! -f "$striptracks_db" ]; then - striptracks_db=/config/nzbdrone.db -fi -export striptracks_recyclebin=$(sqlite3 $striptracks_db 'SELECT Value FROM Config WHERE Key="recyclebin"') -RET=$?; [ "$RET" != 0 ] && >&2 echo "WARNING[$RET]: Unable to read recyclebin information from database \"$striptracks_db\"" - -### Functions -function usage { - usage=" -$striptracks_script -Video remuxing script designed for use with Radarr and Sonarr - -Source: https://github.com/TheCaptain989/radarr-striptracks - -Usage: - $0 [-d] - -Arguments: - audio_languages # ISO639-2 code(s) prefixed with a colon \`:\` - Multiple codes may be concatenated. - subtitle_languages # ISO639-2 code(s) prefixed with a colon \`:\` - Multiple codes may be concatenated. - -Options: - -d # enable debug logging - -Examples: - $striptracks_script :eng:und :eng # keep English and Undetermined audio and - English subtitles - $striptracks_script :eng \"\" # keep English audio and no subtitles - $striptracks_script -d :eng:kor:jpn :eng:spa # Enable debugging, keeping English, Korean, - and Japanese audio, and English and - Spanish subtitles -" - >&2 echo "$usage" -} -# Can still go over striptracks_maxlog if read line is too long -# Must include whole function in subshell for read to work! -function log {( - while read - do - echo $(date +"%Y-%-m-%-d %H:%M:%S.%1N")\|"[$striptracks_pid]$REPLY" >>"$striptracks_log" - local FILESIZE=$(stat -c %s "$striptracks_log") - if [ $FILESIZE -gt $striptracks_maxlogsize ] - then - for i in $(seq $((striptracks_maxlog-1)) -1 0); do - [ -f "${striptracks_log::-4}.$i.txt" ] && mv "${striptracks_log::-4}."{$i,$((i+1))}".txt" - done - [ -f "${striptracks_log::-4}.txt" ] && mv "${striptracks_log::-4}.txt" "${striptracks_log::-4}.0.txt" - touch "$striptracks_log" - fi - done -)} -# Inspired by https://stackoverflow.com/questions/893585/how-to-parse-xml-in-bash -function read_xml { - local IFS=\> - read -d \< ENTITY CONTENT -} -# Get video information -function get_video_info { - [ $striptracks_debug -eq 1 ] && echo "Debug|Getting video information for $striptracks_api_endpoint '$striptracks_api_endpoint_id'. Calling ${striptracks_type^} API using GET and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_api_endpoint_id?apikey=(removed)'" | log - RESULT=$(curl -s -H "Content-Type: application/json" \ - -X GET http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_api_endpoint_id?apikey=$striptracks_apikey) - [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log - if [ "$(echo $RESULT | jq -crM .path)" != "null" ]; then - local RET=0 - else - local RET=1 - fi - return $RET -} -# Initiate API Rescan request -function rescan { - MSG="Info|Calling ${striptracks_type^} API to rescan ${striptracks_video_type}, try #$i" - echo "$MSG" | log - [ $striptracks_debug -eq 1 ] && echo "Debug|Forcing rescan of $striptracks_json_key '$striptracks_video_id', try #$i. Calling ${striptracks_type^} API '$striptracks_api' using POST and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command?apikey=(removed)'" | log - RESULT=$(curl -s -d "{name: '$striptracks_api', $striptracks_json_key: $striptracks_video_id}" -H "Content-Type: application/json" \ - -X POST http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command?apikey=$striptracks_apikey) - [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log - JOBID="$(echo $RESULT | jq -crM .id)" - if [ "$JOBID" != "null" ]; then - local RET=0 - else - local RET=1 - fi - return $RET -} -# Check result of rescan job -function check_rescan { - local i=0 - for ((i=1; i <= 15; i++)); do - [ $striptracks_debug -eq 1 ] && echo "Debug|Checking job $JOBID completion, try #$i. Calling ${striptracks_type^} API using GET and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command/$JOBID?apikey=(removed)'" | log - RESULT=$(curl -s -H "Content-Type: application/json" \ - -X GET http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/command/$JOBID?apikey=$striptracks_apikey) - [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log - if [ "$(echo $RESULT | jq -crM .status)" = "completed" ]; then - local RET=0 - break - else - if [ "$(echo $RESULT | jq -crM .status)" = "failed" ]; then - local RET=2 - break - else - local RET=1 - sleep 1 - fi - fi - done - return $RET -} - -# Process options -while getopts ":d" opt; do - case ${opt} in - d ) # For debug purposes only - MSG="Debug|Enabling debug logging." - echo "$MSG" | log - >&2 echo "$MSG" - striptracks_debug=1 - printenv | sort | sed 's/^/Debug|/' | log - ;; - esac -done -shift $((OPTIND -1)) - -if [ -z "$1" ]; then - MSG="Error|No audio languages specified!" - echo "$MSG" | log - >&2 echo "$MSG" - usage - exit 2 -fi - -if [ -z "$2" ]; then - MSG="Error|No subtitles languages specified!" - echo "$MSG" | log - >&2 echo "$MSG" - usage - exit 3 -fi - -if [ ! -f "/usr/bin/mkvmerge" ]; then - MSG="Error|/usr/bin/mkvmerge is required by this script" - echo "$MSG" | log - >&2 echo "$MSG" - exit 4 -fi - -if [[ "${!striptracks_eventtype}" = "Test" ]]; then - echo "Info|${striptracks_type^} event: ${!striptracks_eventtype}" | log - echo "Info|Script was test executed successfully." | log - exit 0 -fi - -if [ -z "$striptracks_video" ]; then - MSG="Error|No video file specified! Not called from Radarr/Sonarr?" - echo "$MSG" | log - >&2 echo "$MSG" - usage - exit 1 -fi - -if [ ! -f "$striptracks_video" ]; then - MSG="Error|Input file not found: \"$striptracks_video\"" - echo "$MSG" | log - >&2 echo "$MSG" - exit 5 -fi - -#### BEGIN MAIN -FILESIZE=$(numfmt --to iec --format "%.3f" $(stat -c %s "$striptracks_video")) -MSG="Info|${striptracks_type^} event: ${!striptracks_eventtype}, Video: $striptracks_video, Size: $FILESIZE, AudioKeep: $1, SubsKeep: $2" -echo "$MSG" | log - -# Rename the original video file to a temporary name -[ $striptracks_debug -eq 1 ] && echo "Debug|Renaming: \"$striptracks_video\" to \"$striptracks_tempvideo\"" | log -mv -f "$striptracks_video" "$striptracks_tempvideo" | log -RET=$?; [ "$RET" != 0 ] && { - MSG="ERROR[$RET]: Unable to rename video: \"$striptracks_video\" to temp video: \"$striptracks_tempvideo\". Halting." - echo "$MSG" | log - >&2 echo "$MSG" - exit 6 -} - -# Read in the output of mkvmerge info extraction -[ $striptracks_debug -eq 1 ] && echo "Debug|Executing: /usr/bin/mkvmerge -J \"$striptracks_tempvideo\"" | log -JSON=$(/usr/bin/mkvmerge -J "$striptracks_tempvideo") -RET=$?; [ "$RET" != 0 ] && { - MSG="ERROR[$RET]: Error executing mkvmerge." - echo "$MSG" | log - >&2 echo "$MSG" -} - -# This and the modified AWK script are a hack, and I know it. JQ is crazy hard to learn, BTW. -# Mimic the mkvmerge --identify-verbose option that has been deprecated -JSON_PROCESSED=$(echo $JSON | jq -jcrM ' -( if (.chapters | .[] | .num_entries) then - "Chapters: \(.chapters | .[] | .num_entries) entries\n" - else - "" - end -), -( .tracks | - .[] | - ( "Track ID \(.id): \(.type) (\(.codec)) [", - ( [.properties | to_entries |.[] | "\(.key):\(.value | tostring | gsub(" "; "\\s"))"] | join(" ")), - "]\n" ) -) -') -[ $striptracks_debug -eq 1 ] && echo "$JSON_PROCESSED" | awk '{print "Debug|"$0}' | log - -echo "$JSON_PROCESSED" | awk -v Debug=$striptracks_debug \ --v OrgVideo="$striptracks_video" \ --v TempVideo="$striptracks_tempvideo" \ --v MKVVideo="$striptracks_newvideo" \ --v Title="$striptracks_title" \ --v AudioKeep="$1" \ --v SubsKeep="$2" ' -BEGIN { - MKVMerge="/usr/bin/mkvmerge" - FS="[\t\n: ]" - IGNORECASE=1 -} -/^Track ID/ { - FieldCount=split($0, Fields) - if (Fields[1]=="Track") { - NoTr++ - Track[NoTr, "id"]=Fields[3] - Track[NoTr, "typ"]=Fields[5] - if (Fields[6]~/^\(/) { - Track[NoTr, "code"]=substr(Line,1,match(Line,/\)/)) - sub(/^[^\(]+/,"",Track[NoTr, "code"]) - } - if (Track[NoTr, "typ"]=="video") VidCnt++ - if (Track[NoTr, "typ"]=="audio") AudCnt++ - if (Track[NoTr, "typ"]=="subtitles") SubsCnt++ - for (i=6; i<=FieldCount; i++) { - if (Fields[i]=="language") Track[NoTr, "lang"]=Fields[++i] - } - } -} -/^Chapters/ { - Chapters=$3 -} -END { - if (!NoTr) { print "Error|No tracks found in \""TempVideo"\"" > "/dev/stderr"; exit } - if (!AudCnt) AudCnt=0; if (!SubsCnt) SubsCnt=0 - print "Info|Original tracks: "NoTr" (audio: "AudCnt", subtitles: "SubsCnt")" - if (Chapters) print "Info|Chapters: "Chapters - for (i=1; i<=NoTr; i++) { - if (Debug) print "Debug|i:"i,"Track ID:"Track[i,"id"],"Type:"Track[i,"typ"],"Lang:"Track[i, "lang"],"Code:"Track[i, "code"] - if (Track[i, "typ"]=="audio") { - if (AudioKeep~Track[i, "lang"]) { - AudKpCnt++ - print "Info|Keeping audio track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] - if (AudioCommand=="") { - AudioCommand=Track[i, "id"] - } else { - AudioCommand=AudioCommand","Track[i, "id"] - } - # Special case if there is only one audio track, even if it was not specified - } else if (AudCnt==1) { - AudKpCnt++ - print "Info|Keeping only audio track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] - AudioCommand=Track[i, "id"] - # Special case if there were multiple tracks, none were selected, and this is the last one. - } else if (AudioCommand=="" && Track[i, "id"]==AudCnt) { - AudKpCnt++ - print "Info|Keeping last audio track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] - AudioCommand=Track[i, "id"] - } else { - if (Debug) print "Debug|\tRemove:", Track[i, "typ"], "track", Track[i, "id"], Track[i, "lang"] - } - } else { - if (Track[i, "typ"]=="subtitles") { - if (SubsKeep~Track[i, "lang"]) { - SubsKpCnt++ - print "Info|Keeping subtitle track "Track[i, "id"]": "Track[i, "lang"]" "Track[i, "code"] - if (SubsCommand=="") { - SubsCommand=Track[i, "id"] - } else { - SubsCommand=SubsCommand","Track[i, "id"] - } - } else { - if (Debug) print "Debug|\tRemove:", Track[i, "typ"], "track", Track[i, "id"], Track[i, "lang"] - } - } - } - } - if (!AudKpCnt) AudKpCnt=0; if (!SubsKpCnt) SubsKpCnt=0 - print "Info|Kept tracks: "AudKpCnt+SubsKpCnt+VidCnt" (audio: "AudKpCnt", subtitles: "SubsKpCnt")" - if (AudioCommand=="") { - # This should never happen, but belt and suspenders - CommandLine="-A" - } else { - CommandLine="-a "AudioCommand - } - if (SubsCommand=="") { - CommandLine=CommandLine" -S" - } else { - CommandLine=CommandLine" -s "SubsCommand - } - if (Debug) print "Debug|Executing: nice "MKVMerge" --title \""Title"\" -q -o \""MKVVideo"\" "CommandLine" \""TempVideo"\"" - Result=system("nice "MKVMerge" --title \""Title"\" -q -o \""MKVVideo"\" "CommandLine" \""TempVideo"\"") - if (Result>1) print "Error|"Result" remuxing \""TempVideo"\"" > "/dev/stderr" -}' | log - -#### END MAIN - -# Check for script completion and non-empty file -if [ -s "$striptracks_newvideo" ]; then - # Use Recycle Bin if configured - if [ "$striptracks_recyclebin" ]; then - [ $striptracks_debug -eq 1 ] && echo "Debug|Moving: \"$striptracks_tempvideo\" to \"${striptracks_recyclebin%/}/$(basename "$striptracks_video")"\" | log - mv "$striptracks_tempvideo" "${striptracks_recyclebin%/}/$(basename "$striptracks_video")" | log - else - [ $striptracks_debug -eq 1 ] && echo "Debug|Deleting: \"$striptracks_tempvideo\"" | log - rm "$striptracks_tempvideo" | log - fi -else - MSG="Error|Unable to locate or invalid remuxed file: \"$striptracks_newvideo\". Undoing rename." - echo "$MSG" | log - >&2 echo "$MSG" - [ $striptracks_debug -eq 1 ] && echo "Debug|Renaming: \"$striptracks_tempvideo\" to \"$striptracks_video\"" | log - mv -f "$striptracks_tempvideo" "$striptracks_video" | log - exit 10 -fi - -FILESIZE=$(numfmt --to iec --format "%.3f" $(stat -c %s "$striptracks_newvideo")) -MSG="Info|New size: $FILESIZE" -echo "$MSG" | log - -# Call *arr API to RescanMovie/RescanSeries -if [ -f "$striptracks_arr_config" ]; then - # Read *arr config.xml - while read_xml; do - [[ $ENTITY = "Port" ]] && striptracks_port=$CONTENT - [[ $ENTITY = "UrlBase" ]] && striptracks_urlbase=$CONTENT - [[ $ENTITY = "BindAddress" ]] && striptracks_bindaddress=$CONTENT - [[ $ENTITY = "ApiKey" ]] && striptracks_apikey=$CONTENT - done < $striptracks_arr_config - - [[ $striptracks_bindaddress = "*" ]] && striptracks_bindaddress=localhost - - # Check for video ID - if [ "$striptracks_video_id" ]; then - # Call API - if [ "${striptracks_type,,}" = "radarr" ] && get_video_info; then - # Save original quality - ORGQUALITY=$(echo $RESULT | jq -crM ${striptracks_json_quality_root}.quality) - fi - # Loop a maximum of twice - for ((i=1; $i <= 2; i++)); do - # Scan the disk for the new movie file - if rescan; then - # Check that the Rescan completed - if check_rescan; then - # This whole section doesn't work under Sonarr because the episodefile_id changes after the RescanSeries if the filename changes - # Should look into just using a PUT to change everything at once instead of a Rescan. - if [ "${striptracks_type,,}" = "radarr" ]; then - if get_video_info; then - # Check that the file didn't get lost in the Rescan. - # Radarr sometimes needs to Rescan twice when the file extension changes - # (.avi -> .mkv for example) - if [ "$(echo $RESULT | jq -crM .hasFile)" = "true" ]; then - # If we lost the quality information, put it back - # NOTE: This "works" with Radarr in that the change shows up in the GUI, but only until the page changes. - # It doesn't seem to write the info permanently. Maybe an API bug? - if [ "$(echo $RESULT | jq -crM ${striptracks_json_quality_root}.quality.quality.name)" = "Unknown" ]; then - [ $striptracks_debug -eq 1 ] && echo "Debug|Updating quality to '$(echo $ORGQUALITY | jq -crM .quality.name)'. Calling ${striptracks_type^} API using PUT and URL 'http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_video_id?apikey=(removed)'" | log - RESULT=$(curl -s -d "$(echo $RESULT | jq -crM "${striptracks_json_quality_root}.quality=$ORGQUALITY")" -H "Content-Type: application/json" \ - -X PUT http://$striptracks_bindaddress:$striptracks_port$striptracks_urlbase/api/$striptracks_api_endpoint/$striptracks_video_id?apikey=$striptracks_apikey) - [ $striptracks_debug -eq 1 ] && echo "API returned: $RESULT" | awk '{print "Debug|"$0}' | log - if [ "$(echo $RESULT | jq -crM ${striptracks_json_quality_root}.quality.quality.name)" = "Unknown" ]; then - MSG="Warn|Unable to update ${striptracks_type^} $striptracks_api_endpoint '$striptracks_title' to quality '$(echo $ORGQUALITY | jq -crM .quality.name)'" - echo "$MSG" | log - >&2 echo "$MSG" - fi - fi - # The video record is [now] good - break - else - # Loop again because there was no file - continue - fi - else - # No 'path' in returned JSON. - MSG="Warn|The '$striptracks_api' API with $striptracks_api_endpoint $striptracks_api_endpoint_id returned no path." - echo "$MSG" | log - >&2 echo "$MSG" - fi - else - # Didn't do anything because we're in Sonarr - break - fi - else - # Timeout or failure - MSG="Warn|${striptracks_type^} job ID $JOBID timed out or failed." - echo "$MSG" | log - >&2 echo "$MSG" - fi - else - # Error from API - MSG="Error|The '$striptracks_api' API with $striptracks_json_key $striptracks_video_id failed." - echo "$MSG" | log - >&2 echo "$MSG" - fi - done - else - # No video ID means we can't call the API - MSG="Warn|Missing environment variable: $striptracks_video_idname" - echo "$MSG" | log - >&2 echo "$MSG" - fi -else - # No config file means we can't call the API - MSG="Warn|Unable to locate ${striptracks_type^} config file: '$striptracks_arr_config'" - echo "$MSG" | log - >&2 echo "$MSG" -fi - -# Cool bash feature -MSG="Info|Completed in $(($SECONDS/60))m $(($SECONDS%60))s" -echo "$MSG" | log From 0062aecd54a5faf7544bd1b55113b2e62e328a4d Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Sat, 31 Oct 2020 16:38:12 -0500 Subject: [PATCH 9/9] Corrected after rebaseline error --- .github/workflows/BuildImage.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/BuildImage.yml b/.github/workflows/BuildImage.yml index 0f07c57..2d363b4 100644 --- a/.github/workflows/BuildImage.yml +++ b/.github/workflows/BuildImage.yml @@ -6,13 +6,8 @@ jobs: build: env: DOCKERHUB: "linuxserver/mods" #don't modify -<<<<<<< HEAD - BASEIMAGE: "baseimagename" #replace - MODNAME: "modname" #replace -======= BASEIMAGE: "lidarr" #replace MODNAME: "flac2mp3" #replace ->>>>>>> 38e21e1... Initial release runs-on: ubuntu-latest steps: @@ -22,10 +17,6 @@ jobs: id: build run: | docker build --no-cache -t ${DOCKERHUB}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} . -<<<<<<< HEAD - -======= ->>>>>>> 38e21e1... Initial release - name: Push image if: ${{ github.ref == format('refs/heads/{0}-{1}', env.BASEIMAGE, env.MODNAME) }} run: | @@ -35,8 +26,4 @@ jobs: echo ${{ secrets.DOCKERPASS }} | docker login -u ${{ secrets.DOCKERUSER }} --password-stdin # Push all of the tags docker push ${DOCKERHUB}:${BASEIMAGE}-${MODNAME}-${{ github.sha }} -<<<<<<< HEAD docker push ${DOCKERHUB}:${BASEIMAGE}-${MODNAME} -======= - docker push ${DOCKERHUB}:${BASEIMAGE}-${MODNAME} ->>>>>>> 38e21e1... Initial release

&RaYSICo74yETWTc2S5L} zb_F2PKur5}?;Q6mrmjpNwf4O$W=c35gfgQpe0BIS97=FWvZMRDLr|8%0Dp$F8ql6P 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 G`QHFLog Files From d48a9fa820955234a01819af4056694951e6cfee Mon Sep 17 00:00:00 2001 From: TheCaptain989 Date: Fri, 30 Oct 2020 11:52:03 -0500 Subject: [PATCH 8/9] Initial release --- .assets/lidarr-custom-script.png | Bin 0 -> 51791 bytes .assets/lidarr-synology.png | Bin 0 -> 13074 bytes .assets/striptracks-synology.png | Bin 13260 -> 0 bytes .assets/striptracks-v2-custom-script.png | Bin 26204 -> 0 bytes .assets/striptracks-v3-custom-script.png | Bin 64455 -> 0 bytes .github/workflows/BuildImage.yml | 12 + README.md | 165 ++----- root/etc/cont-init.d/98-flac2mp3 | 46 ++ root/etc/cont-init.d/98-striptracks | 47 -- root/usr/local/bin/flac2mp3-debug.sh | 3 + root/usr/local/bin/flac2mp3.sh | 256 ++++++++++ root/usr/local/bin/striptracks-dut.sh | 3 - root/usr/local/bin/striptracks-eng-debug.sh | 3 - root/usr/local/bin/striptracks-eng-jpn.sh | 3 - root/usr/local/bin/striptracks-eng.sh | 3 - root/usr/local/bin/striptracks-fre-debug.sh | 3 - root/usr/local/bin/striptracks-fre.sh | 3 - root/usr/local/bin/striptracks-ger.sh | 3 - root/usr/local/bin/striptracks-spa.sh | 3 - root/usr/local/bin/striptracks.sh | 489 -------------------- 20 files changed, 357 insertions(+), 685 deletions(-) create mode 100644 .assets/lidarr-custom-script.png create mode 100644 .assets/lidarr-synology.png delete mode 100644 .assets/striptracks-synology.png delete mode 100644 .assets/striptracks-v2-custom-script.png delete mode 100644 .assets/striptracks-v3-custom-script.png create mode 100644 root/etc/cont-init.d/98-flac2mp3 delete mode 100644 root/etc/cont-init.d/98-striptracks create mode 100644 root/usr/local/bin/flac2mp3-debug.sh create mode 100644 root/usr/local/bin/flac2mp3.sh delete mode 100644 root/usr/local/bin/striptracks-dut.sh delete mode 100644 root/usr/local/bin/striptracks-eng-debug.sh delete mode 100644 root/usr/local/bin/striptracks-eng-jpn.sh delete mode 100644 root/usr/local/bin/striptracks-eng.sh delete mode 100644 root/usr/local/bin/striptracks-fre-debug.sh delete mode 100644 root/usr/local/bin/striptracks-fre.sh delete mode 100644 root/usr/local/bin/striptracks-ger.sh delete mode 100644 root/usr/local/bin/striptracks-spa.sh delete mode 100644 root/usr/local/bin/striptracks.sh diff --git a/.assets/lidarr-custom-script.png b/.assets/lidarr-custom-script.png new file mode 100644 index 0000000000000000000000000000000000000000..6a6813248d32c962fe20d017d1c1d1e6acab9dfe GIT binary patch literal 51791 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