Gerar músicas aleatórias com YAD (Modo Gráfico)
Este script com interface gráfica (em YAD), irá gerar músicas aleatórias da pasta selecionada. Você pode escolher uma pasta
específica de uma determinada banda, a sua pasta de música ou até mesmo selecionar a raiz de seu sistema. Você poderá
escolher quantas músicas deseja reproduzir e salvar sua Playlist gerada para ouvi-las futuramente.[ Hits: 14.530 ]
Por: Alexandre Gonçalves Monteiro da Silva em 18/12/2011 | Blog: https://www.vivaolinux.com.br/~alexandre_gms


#!/bin/bash
RAND="/tmp/random.txt"
MUSIC="/tmp/music.txt"
INICIO()
{
yad --title='RANDOM MUSIC' \
--width='280' \
--height='100' \
--button=gtk-yes:0 --button=gtk-no:1 \
--center \
--text "DESEJA VOLTAR AO INICIO?" \
if [ $? -eq 0 ]; then
MENU
else
exit 1
fi
}
RANDOM_MUSIC()
{
if [ -f $RAND ] || [ -f $MUSIC ]; then
rm -f $RAND $MUSIC &> /dev/null || exit 1
fi
PASTA=$(\
yad --file --directory --title "SELECIONE A PASTA MUSICAS: " \
--width='600' --height='400' \
)
test ! -z $PASTA || exit 2
QUANT=$(find $PASTA -type f -iname '*.mp3' -o -iname '*.wma' -o -iname '*.wav' -o -iname '*.ogg' | wc -l)
NUMERO=$(\
yad --entry \
--entry-label="Quantas musicas deseja buscar?" \
--entry-text="Digite aqui" \
--completion \
--editable \
--title="RANDOM MUSIC" \
--width="500" \
)
test ! -z $NUMERO || exit 2
if [ $NUMERO -ge $QUANT ]; then
yad --title="RANDOM MUSIC" \
--text="A QUANTIDADE ESCOLHIDA DE MUSICAS EH MAIOR QUE O NUMERO TOTAL DE SOM NA PASTA" \
--width="650" \
--height="100" \
--button=gtk-ok:0 \
if [ $? -eq 0 ]; then
rm -f $MUSIC $RAND &> /dev/null
INICIO
fi
fi
for ((i=0; i<$NUMERO; i++))
do
echo $(($RANDOM % $QUANT)) >> $RAND
done
test -f $RAND || exit 2
j=0
find $PASTA -type f -iname '*.mp3' -o -iname '*.wma' -o -iname '*.wav' -o -iname '*.ogg' | \
while read line
do
for k in `cat $RAND`
do
if [ $j -eq $k ]; then
echo "$line" >> $MUSIC
fi
done
let j++
done | \
yad --progress \
--title 'RANDOM MUSIC' \
--width='500' \
--progress-text='Gerando lista randomica...' \
--pulsate \
--auto-close \
--auto-kill \
cat $MUSIC | awk -F"/" '{print $NF}' | \
yad --list \
--title 'RANDOM MUSIC' \
--column 'DESEJA OUVIR ESTAS MUSICAS? ' \
--width="500" \
--height="500" \
--button=gtk-yes:0 --button=gtk-no:1 \
if [ $? -eq 1 ]; then
INICIO
fi
mplayer -quiet -playlist $MUSIC 2> /dev/null
yad --title='RANDOM MUSIC' \
--width='280' \
--height='100' \
--button=gtk-yes:0 --button=gtk-no:1 \
--center \
--text "Deseja salvar esta lista de Reprodução?"
if [ $? -eq 0 ]; then
PLAYLIST=$(\
yad --entry \
--entry-label="Nome: " \
--entry-text="Digite aqui o nome de sua PlayList" \
--completion \
--editable \
--title="RANDOM MUSIC" \
--width="500" \
)
cp -p $MUSIC ~/$PLAYLIST
if [ $? -eq 0 ]; then
yad --title 'RANDOM MUSIC' --text "\nARQUIVO $PLAYLIST SALVO NO HOME DO USUARIO\n"
else
yad --title 'RANDOM MUSIC' --text "\nPROBLEMAS AO SALVAR O ARQUIVO $PLAYLIST \n"
exit 1
fi
fi
INICIO
}
FUNC_PLAYLIST()
{
cd ~
ARQUIVO_PLAY=$(\
yad --file --title "SELECIONE A SUA PLAYLIST: " \
--width='600' --height='400' \
)
test -z $ARQUIVO_PLAY && exit 1
cat $ARQUIVO_PLAY | awk -F"/" '{print $NF}' | \
yad --list \
--title 'RANDOM MUSIC' \
--column 'DESEJA OUVIR AS MUSICAS DA SUA PLAYLIST?' \
--width="500" \
--height="500" \
--button=gtk-yes:0 --button=gtk-no:1 \
if [ $? -eq 0 ]; then
mplayer -quiet -playlist $ARQUIVO_PLAY 2> /dev/null
else
INICIO
fi
}
MENU()
{
while OPCOES=$(\
yad --list \
--title='RANDOM MUSIC' \
--column="OP":NUM \
--column=" ESCOLHA UMA OPÇÃO:":TEXT \
--print-column=1 --hide-column=1 \
--width='270' --height='200' \
--button='_Sair:1' --button='_Acessar:0' \
"1" "Gerar Musicas Aleatorias" \
"2" "Executar uma PlayList" \
)
do
case $OPCOES in
1\|) RANDOM_MUSIC
;;
2\|) FUNC_PLAYLIST
;;
esac
done
}
MENU
Script com muitas utilidades para arquivos e pastas
Monitoramento de pops para provedores
Aprendendo a melhorar os seus scripts
Simples sistema de backup com acesso remoto
Enviando mensagens de WhatsApp no Linux usando Shell Script e ADB
Nenhum comentário foi encontrado.
Bluefin - A nova geração de ambientes de trabalho Linux
Como atualizar sua versão estável do Debian
Cirurgia para acelerar o openSUSE em HD externo via USB
Pós-instalação do elementary OS 8.1
Quer auto-organizar janelas (tiling) no seu Linux? Veja como no Plasma 6 e no Gnome
Copiando caminho atual do terminal direto para o clipboard do teclado
Estou com um problema no meu desktop do ubuntu (1)
Conky não mostra temperaturas da CPU no notebook (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (0)









