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.508 ]
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
Kit de scripts para backup (Full + Diferencial + Samba + Rede)
Receba seu IP externo via e-mail ou ensine o bash a ler e enviar e-mails
Processamento Paralelo em Shell Script - Conversão de Arquivos WAV para MP3
Simples sistema de backup com acesso remoto
pam_mount e CiD - Gerenciamento centralizado dos mapeamentos de unidades de rede no Ubuntu
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
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Pfsense inacessivel após um periodo de tempo (2)
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (39)









