summaryrefslogtreecommitdiffstats
path: root/mpd-random-albums
blob: 4bcd680f86671d85313d03f8e4fa1a9ae9b5651e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/env sh
# -*- mode: scheme; -*-
IFS=" "
exec scsh -s "$0" "$@"
!#

(define (randomize-all-albums)
  (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))