From b233c1870955bc92d3d121ede93e8054198ec8cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Sat, 27 Dec 2025 07:30:00 +0100 Subject: [PATCH] pls: download on like --- packages/pls.nix | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/pls.nix b/packages/pls.nix index eef1846..e11570f 100644 --- a/packages/pls.nix +++ b/packages/pls.nix @@ -6,6 +6,7 @@ gnused, curl, nur, + downloadDirectory ? "~/mobile/audio/Musik/radiomitschnitt" }: let playlistAPI = "https://radio.lassul.us"; @@ -104,8 +105,19 @@ in writers.writeDashBin "pls" '' case "$1" in good|like|cool|nice|noice|top|yup|yass|yes|+) - ${curl}/bin/curl -sS -XPOST "${playlistAPI}/good" + response=$(${curl}/bin/curl -sS -XPOST "${playlistAPI}/good") echo ${lib.escapeShellArg (lib.concatStringsSep "\n" messages.good)} | shuf -n1 | ${sendIRC} + + # Download the song if a download URL is provided in the string (youtu.be) + downloadUrl=$(echo "$response" | grep -oE 'https?://(www\.)?(youtube\.com|youtu\.be)/[^\s]+') + if [ -n "$downloadUrl" ]; then + echo "Downloading song from URL: $downloadUrl" + mkdir -p ${lib.escapeShellArg downloadDirectory} + cd ${lib.escapeShellArg downloadDirectory} + ${download} "$downloadUrl" + else + echo "No download URL found in the response: $response" + fi ;; skip|next|bad|sucks|no|nope|flop|-) ${curl}/bin/curl -sS -XPOST "${playlistAPI}/skip"