Jukebox com dialog para PCs antigos

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

[ Hits: 1.463 ]

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

Case em shell script

buscaTexto.sh - busca um determinado conteudo em todos os arquivos

Cálculo Etanol ou Gasolina

Meu IP

Script para testar a conexão do computador


  

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