Gerando lista de arquivos mp3 do disco em arquivo de formato HTML

Publicado por Carlos Junior 20/04/2009

[ Hits: 6.592 ]

Download gera-mp3.sh




É 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.

  



Esconder código-fonte

#!/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"

Scripts recomendados

iptables para cyber

Criar gráficos, estatística da "Google-Scholar" usando wget

bash: função para validação de IP (IPv4)

Adicionando novo usuário manualmente

Expect-Bash


  

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