Jukebox com dialog para PCs antigos

Publicado por wellington (última atualização em 27/06/2018)

[ Hits: 1.464 ]

Download playlist




Este script cria uma playlist com o dialog e executa os MP3 da pasta selecionada com uma interface simples e fácil, ideal para ser usada em um PC de poucos recursos.

Quem puder contribuir com alguma melhoria, será bem vindo ;)

  



Esconder código-fonte

#!/bin/bash

#criando o loop principal
proxima=primeira

while : ; do
    
        case "$proxima" in
    
           primeira)
            proxima=segunda

#mudando para o diretório de músicas
cd /ntfs2/Musica

#corrigindo o nome das pastas para serem lidas corretamente no dialog 
#(este comando só precisa ser executado uma vez para retirar os espaços dos nomes dos diretórios e depois pode ser comentado/retirado).
#find . -name "*" -type d | while read line; do mv "$line" "$(echo $line | sed 's/ /_/g')"; done

#criando a primeira lista (lista de estilos) dessa forma ela é atualizada cada vez que se executa a jukebox
    ls > /tmp/lista1.txt

    LISTA1=/tmp/lista1.txt
           
      PASTA1=$(dialog --backtitle 'by well'                   \
            --title "JukeBox"                       \
            --stdout                                \
            --menu 'Escolha o que quer ouvir' 0 0 0 \
            $( cat $LISTA1 | sed 's/$/ \\/'))
           
           ;;
           segunda)
            proxima=terceira
            anterior=primeira

cd $PASTA1

#criando a segunda lista (lista de "bandas") dessa forma ela é atualizada cada vez que se executa a jukebox
  ls > /tmp/lista2.txt

  LISTA2=/tmp/lista2.txt
  
      PASTA2=$(dialog --backtitle 'by well'   \
      --title "JukeBox"                       \
      --stdout                                \
      --menu 'Escolha a Banda' 0 0 0          \
      $(cat $LISTA2 | sed 's/$/ \\/'))

           ;;
           terceira)
           proxima=final
           anterior=segunda
      
cd $PASTA2

#aqui, caso na segunda lista já tenhamos músicas elas serão executadas, se forem diretórios partiremos para a última lista
  mp3=$(ls -al | grep '^-' | awk '{ print $9 }')

  pasta=$(ls -al | grep '^d' | awk '{ print $9 }')

    for dir in $pasta;

    do

   if [ $dir != '.' ]; then

       if [ $dir != '..' ]; then

#em caso de diretório será criando a terceira lista (lista de albúns) dessa forma ela é atualizada cada vez que se executa a jukebox
       ls > /tmp/lista3.txt ; LISTA3=/tmp/lista3.txt

       fi

   fi

    done

   for arq in $mp3;

    do

#em caso de mp3's serão executadas
  ls -1 *.mp3 > lista.m3u ; 
       
#aqui temos um infoxbox com as músicas que serão tocadas
       dialog --cr-wrap --sleep 2                                                          \
              --backtitle '(Sair q) (Próxima f) (Anterior d) (Pause/Start s) (Volume + -)' \
                   --title 'JukeBox'                                                            \
                   --infobox                                                                    \
            "Músicas que você escolheu
            Tipo  : $PASTA1
            Banda : $PASTA2
            Disco : $PASTA3
            Músicas : \n`cat lista.m3u`
                              " 0 0 ;
                                      
            mpg123 -@ lista.m3u -C -q ; 
            
            exit

    done

      PASTA3=$(dialog --backtitle 'by well'  --title "JukeBox" --stdout --menu 'Escolha o Disco' 0 0 0 $(cat $LISTA3 | sed 's/$/ \\/')) 
                
           ;;
           final)
           anterior=terceira
                
cd $PASTA3

  ls -1 *.mp3 > lista.m3u

#aqui temos um infoxbox com as músicas que serão tocadas
      dialog --cr-wrap --sleep 2                                                          \
             --backtitle '(Sair q) (Próxima f) (Anterior d) (Pause/Start s) (Volume + -)' \
             --title 'JukeBox'                                                            \
             --infobox                                                                    \
      "Músicas que você escolheu
      Tipo  : $PASTA1
      Banda : $PASTA2
      Disco : $PASTA3
      Músicas : \n`cat lista.m3u`
                " 0 0

      mpg123 -@ lista.m3u -C -q
      
      break
      ;;
      
      *)

      esac

#aqui o fim do loop              
        retorno=$?
    [ $retorno -eq 1   ] && proxima=$anterior   # cancelar
    [ $retorno -eq 255 ] && break               # Esc
      
done

exit      

Scripts recomendados

Verificar atualização em URL

RPM para conexão PPPOE

Script Menu

Barra de Progresso Simples

Share


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts