Jukebox com dialog para PCs antigos
Publicado por wellington (última atualização em 27/06/2018)
[ Hits: 1.793 ]
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 ;)
#!/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
Array de números aleatórios não-repetidos de um intervalo em Shellscript (Bashscript)
Rotina de Vacuum para banco de Dados Postgres
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Consertando o áudio com som ruim no Pipewire
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... (1)
Como programar um sistema de controle para distribuições linux em c? (3)









