diff options
| -rw-r--r-- | odin/strm.nix | 3 | ||||
| -rwxr-xr-x | odin/strm/send_kitty | 41 |
2 files changed, 43 insertions, 1 deletions
diff --git a/odin/strm.nix b/odin/strm.nix index 36d0e876..9ddec319 100644 --- a/odin/strm.nix +++ b/odin/strm.nix | |||
| @@ -12,11 +12,12 @@ stdenv.mkDerivation { | |||
| 12 | substituteAllInPlace download_youtube | 12 | substituteAllInPlace download_youtube |
| 13 | substituteAllInPlace cleanup_youtube | 13 | substituteAllInPlace cleanup_youtube |
| 14 | substituteAllInPlace send_media | 14 | substituteAllInPlace send_media |
| 15 | substituteAllInPlace send_kitty | ||
| 15 | ''; | 16 | ''; |
| 16 | 17 | ||
| 17 | installPhase = '' | 18 | installPhase = '' |
| 18 | mkdir -p $out/bin | 19 | mkdir -p $out/bin |
| 19 | 20 | ||
| 20 | install -m 755 -t $out/bin download_youtube cleanup_youtube send_media | 21 | install -m 755 -t $out/bin download_youtube cleanup_youtube send_media send_kitty |
| 21 | ''; | 22 | ''; |
| 22 | } | 23 | } |
diff --git a/odin/strm/send_kitty b/odin/strm/send_kitty new file mode 100755 index 00000000..a294d84c --- /dev/null +++ b/odin/strm/send_kitty | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | #!@zsh@/bin/zsh | ||
| 2 | |||
| 3 | set -o errexit | ||
| 4 | umask 022 | ||
| 5 | |||
| 6 | wDir=/srv/hlidskjalf | ||
| 7 | concatDir=${wDir}/concat | ||
| 8 | lastFile=${concatDir}/latest.mkv | ||
| 9 | |||
| 10 | fList="" | ||
| 11 | |||
| 12 | function cleanup() { | ||
| 13 | [[ -n "${fList}" ]] && rm -v ${fList} | ||
| 14 | } | ||
| 15 | |||
| 16 | trap cleanup EXIT | ||
| 17 | |||
| 18 | fList=$(mktemp --tmpdir filelist.XXXXXX) | ||
| 19 | |||
| 20 | typeset -a findArg | ||
| 21 | findArg=() | ||
| 22 | |||
| 23 | if [[ -e ${lastFile} ]]; then | ||
| 24 | findArg=(-mtime -1 -a -newer ${lastFile}) | ||
| 25 | else | ||
| 26 | findArg=(-mtime -1) | ||
| 27 | fi | ||
| 28 | |||
| 29 | find -L /srv/hlidskjalf \( -path /srv/hlidskjalf/concat -prune \) -o \( \( ${findArg} \) -type f -print \) | sort | >! ${fList} | ||
| 30 | |||
| 31 | cat ${fList} >&2 | ||
| 32 | |||
| 33 | if [[ $(wc -l ${fList} | cut -d ' ' -f 1) -eq 0 ]]; then | ||
| 34 | exit 0 | ||
| 35 | fi | ||
| 36 | |||
| 37 | newFile="${concatDir}/$(date +'%Y-%m-%d-%H-%M-%S').mkv" | ||
| 38 | |||
| 39 | @ffmpeg@/bin/ffmpeg -safe 0 -f concat -i =(awk $'{ print "file \'"$0"\'" }' ${fList}) -c copy -metadata "description=$(xargs -a ${fList} -- basename -s ".mkv")" ${newFile} | ||
| 40 | queue.hel ${newFile} | ||
| 41 | ln -vfs $(realpath --relative-to=${lastFile:h} ${newFile}) ${lastFile} | ||
