Script für Clementine: zufällig Alben abspielen

Das folgende Script habe ich bei mir unter ~/bin/randomAlbum liegen. Es ermöglicht es mit Clementine Musik albenweise wiederzugeben, d.h. es wählt aus der Sammlung ein Album zufällig aus und beginnt die Wiedergabe. Neigt sich das Album dem Ende entgegen, wird automatisch das nächste Album geladen.

#!/bin/bash
function atEnd(){

    LEN=$(qdbus org.mpris.clementine /TrackList GetLength)
    if [ $LEN -eq 0 ]; then
        loadAlbum
        LEN=$(qdbus org.mpris.clementine /TrackList GetLength)
    fi

    CURRENT=$(qdbus org.mpris.clementine /TrackList GetCurrentTrack)
    if [ $CURRENT -eq -1 ]; then
        qdbus org.mpris.clementine /Player Play
        sleep 5
        CURRENT=$(qdbus org.mpris.clementine /TrackList GetCurrentTrack)
    fi
    CURRENT=$(($CURRENT+1))

    DIST=$(($LEN-$CURRENT))
    if [ $DIST -lt 5 ]; then
        loadAlbum
    fi

    if [ $CURRENT -gt 11 ]; then
        for I in $(seq 0 10); do
            qdbus org.mpris.clementine /TrackList DelTrack 0 2> /dev/null
        done
    fi

}

function loadAlbum(){
    ALBUM=""
    while [ "$ALBUM" = "" ]; do
        ALBUM=$(echo "select album from songs order by random() limit 1;" | sqlite3 /home/srichter/.config/Clementine/clementine.db)
    done
    FILES=$(echo 'select filename from songs where album="'$ALBUM'" order by disc,track;' | sqlite3 /home/srichter/.config/Clementine/clementine.db)
    for FILE in $FILES; do
        FILE=$(echo $FILE | echo -e $(sed 's/+/ /g; s/%/\\x/g'))        
        qdbus org.mpris.clementine /TrackList AddTrack "$FILE" 0 >/dev/null 2>&1
    done
}

if [ $# -lt 1 ]; then
    nohup randomAlbum hidden > /dev/null &
else 
    while [ true ]
    do
        atEnd
        sleep 10
    done
fi

Neuen Kommentar hinzufügen

Eingeschränktes HTML

  • Erlaubte HTML-Tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Zeilenumbrüche und Absätze werden automatisch erzeugt.
  • Website- und E-Mail-Adressen werden automatisch in Links umgewandelt.