Gerando lista de arquivos mp3 do disco em arquivo de formato HTML
Publicado por Carlos Junior 20/04/2009
[ Hits: 6.956 ]
É muito trabalhoso quando se tem muitas músicas armazenadas no disco e queremos criar uma página WEB contendo uma lista desses nossos arquivos de mp3, seja para publicarmos em um servidor, compartilhá-los com amigos, ou até mesmo para uso pessoal.
Este Script faz todo o trabalho automaticamente, criando links simbólicos para os arquivos mp3 em um diretório definido pelo usuário, gerando um arquivo HTML chamado 'gera-mp3.html', e ainda gerando um log com o resultado final.
#!/bin/bash
# ##### Nome: gera-mp3 - Versão: 2.0
# ##### Autor: Carlos Schwarz - Data: 30 Nov 2007
# Procura, no diretório atual e sub-diretórios, por arquivos
# tipo .mp3, e cria, dentro do diretório passado pelo parâmetro 1,
# um link simbólico para cada arquivo encontrado.
# Também gera, no diretório atual, um arquivo HTML chamado
# 'gera-mp3.html' com links para os arquivos simbólicos criados.
##########################################################
########## CONFIRMANDO ENTRADA DE DADOS CORRETA ##########
MsgErro()
{
echo "Uso: gera-mp3 <diretório>"
echo "Onde: <diretório> é aonde serão criados os links simbólicos"
echo " dos arquivos .mp3 encontrados no disco."
echo -e "OBS: Somente o usuário 'root' tem permissão.\n"
# echo -e "Digite: 'gera-mp3 --help' para mais informações (ainda não disponível).\n"
}
if [ $# != 1 ]
then
echo "ERRO: Passagem incorreta de parâmetros."
MsgErro
exit 1
elif [ ! -e "$1/." ]
then
echo "ERRO: Diretório de destino não encontrado."
MsgErro
exit 2
elif [ "$(cd "$1"; pwd)" = "$(pwd)" ]
then
echo "ERRO: Diretório de destino não deve ser diretório atual."
MsgErro
exit 3
fi
if [ "$(whoami)" != "root" ]
then
echo "ERRO: Somente o usuário 'root' tem permissão."
MsgErro
exit 4
fi
DirHTML="$(echo "$(cd "$1"; pwd)" | cut -d"/" -f"$(echo $(cd "$1"; pwd) | tr "/" "\n" | grep -c "")")"
echo -e "\e[1mDestino dos links simbólicos:\e[m"
echo " $(cd "$1"; pwd)"
echo -e "\e[1mDestino do arquivo HTML:\e[m"
echo " $(pwd)/gera-mp3.html"
echo -e "\e[1mDestino dos links dentro do arquivo HTML:\e[m"
echo -e " href=\"$DirHTML/nome_da_música.mp3\"\n"
while true
do
nulo=""
tput sc
read -n1 -p "Confirmar (S/n): " Confirmar
[ "$Confirmar" != "" ] && read -n1 -s nulo
Confirmar=$(echo "$Confirmar" | tr [A-Z] [a-z])
if [ "$Confirmar" = "" ]; then Confirmar="s"; tput cuu1; fi
if [ "$Confirmar" = "s" -a "$nulo" = "" ]; then echo; break; fi
if [ "$Confirmar" = "n" -a "$nulo" = "" ]; then echo -e "\nCancelado pelo usuário.\n"; exit; fi
tput rc ; tput el
done
##########################################################
########## DECLARAÇÃO DAS VARIÁVEIS DE AMBIENTE ##########
oIFS="$IFS"
IFS="
"
ContMp3=0
ContDupl=0
Arq=""
##########################################################
########## PROCURANDO, CRIANDO DADOS NO ARQUIVO ##########
echo -e "Trabalhando \e[1m...\e[m"
echo -e "\n\n################################################################" >> "gera-mp3.log"
echo "######### gera-mp3.log - $(date) #########" >> "gera-mp3.log"
echo -e "################################################################\n" >> "gera-mp3.log"
echo -e " - ARQUIVOS DUPLICADOS NÃO ADICIONADOS: -\n" >> "gera-mp3.log"
# echo -e "------------------------------------\n" >> "gera-mp3.log"
for Arq in $(find / -wholename "$(pwd)/*.mp3")
do
Musica="$(echo "$Arq" | tr "/" "\n" | grep ".mp3$")"
ln -s "$Arq" "$1/$Musica" > /dev/null 2>&1
if [ $? != 0 ]
then
echo -e "$Arq" >> "gera-mp3.log"
((ContDupl++))
else
echo " <a target=\"_top\"" >> "gera-mp3.html"
echo " href=\"$DirHTML/$Musica\">$Musica</a><br>" >> "gera-mp3.html"
# echo " target=\"_top\">$Musica</a><br>" >> "gera-mp3.html"
echo -e "\n" >> "gera-mp3.html"
((ContMp3++))
fi
done
[ "$ContDupl" = "0" ] && echo "Nenhum arquivo duplicado foi encontrado." >> "gera-mp3.log"
echo -e "\n - RELATÓRIO FINAL: -\n" >> "gera-mp3.log"
echo "Encontradas $(echo $ContMp3 + $ContDupl | bc) músicas." >> "gera-mp3.log"
echo "Destas, $ContMp3 foram adicionadas com sucesso." >> "gera-mp3.log"
[ "$ContDupl" != "0" ] && echo "$ContDupl continham nomes iguais e não foram adicionadas." >> "gera-mp3.log"
echo
echo "Encontradas $(echo $ContMp3 + $ContDupl | bc) músicas."
echo "Destas, $ContMp3 foram adicionadas com sucesso."
[ "$ContDupl" != "0" ] && echo "$ContDupl continham nomes iguais e não foram adicionadas."
echo
IFS="$oIFS"
Crackear rede WIFI - Script para testes de segurança em redes Wifi - wpa e wpa2 com wordlist
Converter Wav para MP3 usando Lame e PPSS para multi processamento via shell script - Asterisk
Um super limpador do sistema KDu
Backup com TAR em LOG usando FITA LTO/DLT com filtro de arquivos, SPLIT em FITAS, envio de LOG por E
Ispeed - Medidor de velocidade de download
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
É normal não gostar de KDE? (15)
Erro ao instalar programa, "você tem pacotes retidos quebrados&qu... (13)









