From 79df03a72ad0dc7c13f5e313f5038786dc38bc90 Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Wed, 2 Mar 2022 22:04:01 -0800 Subject: [PATCH] [mpd] Add option to randomize albums by specific artist --- mpd/usr/bin/mpd-random-albums | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/mpd/usr/bin/mpd-random-albums b/mpd/usr/bin/mpd-random-albums index 0b2469b..4bcd680 100755 --- a/mpd/usr/bin/mpd-random-albums +++ b/mpd/usr/bin/mpd-random-albums @@ -1,9 +1,24 @@ -#!/usr/bin/scsh -s +#!/usr/bin/env sh +# -*- mode: scheme; -*- +IFS=" " +exec scsh -s "$0" "$@" !# -(run (mpc clear)) +(define (randomize-all-albums) + (for-each (lambda (album) + (run (mpc findadd album ,album))) + (run/strings (pipe (mpc list album) + (shuf))))) -(for-each (lambda (album) - (run (mpc findadd album ,album))) - (run/strings (pipe (mpc list album) - (shuf)))) +(define (randomize-albums-by-artist artist) + (for-each (lambda (album) + (display (run/string (mpc findadd ,(string-append "((artist == \"" artist "\") AND (album == \"" album "\"))"))))) + (run/strings (pipe (mpc list album ,(string-append "((artist == \"" artist "\"))")) + (shuf))))) + +(run (mpc clear) + (> /dev/null)) + +(if (> (length command-line-arguments) 0) + (randomize-albums-by-artist (car command-line-arguments)) + (randomize-all-albums))