MPD "minimum tracks" script

Tutto ciò che altrimenti sarebbe OT
Rispondi
psychoweb
Novello Arciere
Messaggi: 108
Iscritto il: 15 luglio 2008, 8:58

Messaggio da psychoweb » 5 settembre 2010, 8:17

Usando Client175 per MPD mi sono reso conto di quanto comodo può essere sfogliare la propria libreria musicale filtrando gli artisti per le quali sono presenti solo un numero minimo di tracce, escludendo quindi tutte quelle canzoni sfuse che possono rendere difficoltoso il browsing per artista. Mi chiedo da un po' se non sia possibile tramite MPD [e mpc] sfruttare un qualche linguaggio da query relazionale per ottenere questo risultato, ma fino ad ora non ho trovato niente a riguardo.
Motivo per il quale ho buttato giù due righe di bash come prova:

Codice: Seleziona tutto

#stampa una lista di artisti per i quali sono presenti un numero minimo di tracce specificato come parametro
function mpcmintrack() {
  mpc list artist | while read artist ; do
    mintrack=$(mpc list title artist "$artist" | wc -l)
    if [[ $mintrack -ge $1 ]] ; then
      echo "$artist ($mintrack)"
    fi
  done
}
Lo script funziona, ma
1) è piuttosto lento (e ci credo, due invocazioni annidate di mpc più la pipe non sono il massimo dell'efficenza)
2) non risolve a pieno il mio problema, lo script stampa su output mentre invece mi piacerebbe "sfogliare" questa lista anzichè aggiungere il risultato ad una playlist.

Mi/Vi chiedo se sia possibile migliorare questa funzione o adottare un approccio più efficente, a occhio mi sembra uno di quei casi in cui un linguaggio di scripting (inteso in questo caso come pura invocazione di comandi) può risultare un po' limitante.
Mi farebbe comodo una query SQL, provo intanto a dare un'occhiata alle librerie per python.

Grazie

Rispondi