From 15ea875742ff861b6c044f4a5e426eaa6ce55a16 Mon Sep 17 00:00:00 2001 From: Franziska Kunsmann Date: Wed, 7 Dec 2022 04:24:38 +0100 Subject: [PATCH] home.nas: add bundle:mixcloud-downloader --- bundles/mixcloud-downloader/files/download.sh | 54 +++++++++++++++++++ bundles/mixcloud-downloader/items.py | 8 +++ bundles/mixcloud-downloader/metadata.py | 11 ++++ nodes/home/nas.py | 7 +-- 4 files changed, 74 insertions(+), 6 deletions(-) create mode 100644 bundles/mixcloud-downloader/files/download.sh create mode 100644 bundles/mixcloud-downloader/items.py create mode 100644 bundles/mixcloud-downloader/metadata.py diff --git a/bundles/mixcloud-downloader/files/download.sh b/bundles/mixcloud-downloader/files/download.sh new file mode 100644 index 0000000..84c8039 --- /dev/null +++ b/bundles/mixcloud-downloader/files/download.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +[[ -n "$DEBUG" ]] && set -x + +set -euo pipefail + +if ! [[ -d /opt/mixcloud-downloader/venv ]] +then + virtualenv -p python3 /opt/mixcloud-downloader/venv +fi + +source /opt/mixcloud-downloader/venv/bin/activate + +pip install --upgrade pip yt-dlp + +for i in Neosignal tasmo starkato b4m Alexeyan jakehunnter davem_dokebi tasmo +do + if ! [[ -d "/storage/nas/Musik/mixcloud/$i" ]] + then + # no -p here, this should fail if + # zfs is not mounted + mkdir "/storage/nas/Musik/mixcloud/$i" + fi + ( + cd "/storage/nas/Musik/mixcloud/$i" + yt-dlp "https://mixcloud.com/$i" + ) +done + +for i in CouchsofaLiveSets + if ! [[ -d "/storage/nas/Musik/mixcloud/$i" ]] + then + # no -p here, this should fail if + # zfs is not mounted + mkdir "/storage/nas/Musik/mixcloud/$i" + fi + ( + cd "/storage/nas/Musik/mixcloud/$i" + yt-dlp "https://archive.org/details/$i" + ) +done + +for i in tschunkelmusik + if ! [[ -d "/storage/nas/Musik/mixcloud/$i" ]] + then + # no -p here, this should fail if + # zfs is not mounted + mkdir "/storage/nas/Musik/mixcloud/$i" + fi + ( + cd "/storage/nas/Musik/mixcloud/$i" + yt-dlp "https://soundcloud.com/$i" + ) +done diff --git a/bundles/mixcloud-downloader/items.py b/bundles/mixcloud-downloader/items.py new file mode 100644 index 0000000..a45acdc --- /dev/null +++ b/bundles/mixcloud-downloader/items.py @@ -0,0 +1,8 @@ +files['/opt/mixcloud-downloader/download.sh'] = { + 'mode': '0500', + 'owner': 'kunsi', +} + +directories['/opt/mixcloud-downloader'] = { + 'owner': 'kunsi', +} diff --git a/bundles/mixcloud-downloader/metadata.py b/bundles/mixcloud-downloader/metadata.py new file mode 100644 index 0000000..ed85a00 --- /dev/null +++ b/bundles/mixcloud-downloader/metadata.py @@ -0,0 +1,11 @@ +defaults = { + 'systemd-timers': { + 'timers': { + 'mixcloud-downloader': { + 'command': '/opt/mixcloud-downloader/download.sh', + 'user': 'kunsi', + 'when': '*-*-* 03:00:00', + }, + }, + }, +} diff --git a/nodes/home/nas.py b/nodes/home/nas.py index 9e94929..381fed8 100644 --- a/nodes/home/nas.py +++ b/nodes/home/nas.py @@ -5,6 +5,7 @@ nodes['home.nas'] = { 'bundles': { 'backup-client', 'lm-sensors', + 'mixcloud-downloader', 'mosquitto', 'nfs-server', 'scansnap', @@ -186,12 +187,6 @@ nodes['home.nas'] = { 'find /storage/nas/ -type d -exec chmod 0775 {} \;', 'find /storage/nas/ -type f -exec chmod 0664 {} \;', ], - 'when': '*-*-* 03:00:00', - }, - 'nas_mixcloud': { - 'command': vault.decrypt('encrypt$gAAAAABgxFkM0Zd8SOhk8aK_zsUY5S39FvyxvEq9TVnAK-ryn9qjrpziqUgNyPXFQBSUHPCV5DX6CW6iSQFGO54truPoaymdHFwchWh3u6bOar_h8x3er3I=').format_into('wget --mirror --page-requisites --convert-links --domains {0} --execute robots=off https://{0}/'), - 'pwd': '/storage/nas/Musik/Compilations', - 'user': 'kunsi', 'when': '*-*-* 02:00:00', }, },