voila ce que j'ai pu faire pour l'instant avec zenity.
je ne sais pas comment faire pour la recherche cddb(qui se fait dans la console)
Il y a peut être encore des erreurs (et c'est mal codé :/)
ça ne servira peut être à rien mais ça a eu le mérite de m'amuser
#!/bin/sh
##########################################################################################################################
## Change log: ##
## ----------- ##
## ##
## -Utilisation de lltag -S au lieu de MP3info (v1.0) ##
## -Correction des fautes de nortograffe :) (All) ##
## -Utilisation de genpuid© et mipcore© pour générer le puid du MP3 Musicip© (http://www.musicip.com) ##
## -Utilisation de la BD Musicbrainz pour récupérer les tags auto (v1.3) ##
## -Ouverture de DEEZER avec la recherche demandé (v1.3) ##
## -Récuperation du dernier Flash*** présent dans le /tmp/ (Merci a AnsuzPeorth) (v1.2) ##
## -Utilisation de eyeD3 pour tag v1.1 et V2.4 (v1.2) ##
## -Améllioration des recherches CDDB avec lltag (v1.3) ##
## -Détermine si le chargement est complet automatiquement (Merci a AnsuzPeorth) (v1.3) ##
## -Different choix de recherche (v1.4) ##
## -Correction du bug quand plusieur Flash** dans /tmp/ (v1.4) ##
## -Correction du bug pour la requete sur CDDB (v1.4) ##
## -Correction du bug des tag quand le PUID donne plusieur réponse ##
## -Supression des underscrore pour le trie des mp3 (v1.4) ##
## -Amelioration de l'affichage (v1.4) ##
## -Utilisation eyeD3 pour la définition des variables de trie (Regle le probleme d'accent) (ruse de siou) (v1.4) ##
## -Mise en Majuscule de la premiere lettre de chaque tag rentré manuellement (v1.4) ##
## -Conversion réalisé dans ~/MP3/conv pour que sa soit plus propre et ranger (v1.4) ##
## -Création d'un installeur automatique (v1.5) ##
## ##
##########################################################################################################################
#
##########################
## Auteur : 06011988 ##
## Version: 1.5 ##
## Licence: GNU ##
##########################
#
#L'auteur décline toutes responsabilités de l'utilisation illégal de deezaster!
#
# Clé d'utillisation de genpuid (Fourni par Musicdns.com)
key=3839dbda127e29ccd213da2be833b756
#Recherche
search=$(zenity --list \
--title="Sur quel(s) site(s) effectuer la recherche?" \
--column="site" --column="Description" \
"1" "Deezer" \
"2" "Imeem" \
"3" "les deux" \
"4" "aucun" )
if [ "$search" = "1" ]; then
{
##Recherche a effectuer sur deezer
recherche=$(zenity --entry \
--title="Recherche" \
--text="Entrer un nom d'artiste ou de chanson a rechercher :" \
--entry-text "recherche" )
mquery=$(echo $recherche | sed -e 's/ /%20/g' | sed -e 's/[éèêë]/e/g' | sed -e 's/à/a/g' | sed -e 's/[ôö]/o/g' | sed -e 's/ù/u/g' | sed -e 's/ç/c/g')
firefox http://www.deezer.com/#music/result/all/$mquery 2>/dev/null &
}
elif [ "$search" = "2" ]; then
{
##Recherche a effectuer sur imeem
recherche=$(zenity --entry \
--title="Recherche" \
--text="Entrer un nom d'artiste ou de chanson a rechercher :" \
--entry-text "recherche" )
mquery=$(echo $recherche | sed -e 's/ /%20/g' | sed -e 's/[éèêë]/e/g' | sed -e 's/à/a/g' | sed -e 's/[ôö]/o/g' | sed -e 's/ù/u/g' | sed -e 's/ç/c/g')
##Lancement de firefox
firefox http://www.imeem.com/tag/$mquery 2>/dev/null &
}
elif [ "$search" = "3" ]; then
{
##Recherche a effctuer sur les 2
recherche=$(zenity --entry \
--title="Recherche" \
--text="Entrer un nom d'artiste ou de chanson a rechercher :" \
--entry-text= "recherche" )
mquery=$(echo $recherche | sed -e 's/ /%20/g' | sed -e 's/[éèêë]/e/g' | sed -e 's/à/a/g' | sed -e 's/[ôö]/o/g' | sed -e 's/ù/u/g' | sed -e 's/ç/c/g')
##Lancement de firefox
firefox http://www.deezer.com/#music/result/all/$mquery 2>/dev/null &
firefox http://www.imeem.com/tag/$mquery 2>/dev/null &
}
else
{
zenity --info \
--text="Merci de vous assurer que le fichier est bien en cours de chargement."
}
fi
#Fichier chargé complétement?
if zenity --question \
--text="Continuer deezaster ?"
### Sélection du dernier fichier flv présent dans /tmp/
file=$(ls -lt /tmp/Flash* | cut -d " " -f8 | head -n1)
#Oui
then
{
##Fichier existant ?
if [ -e "$file" ]; then
{
### Chargement du fichier test
var=$(ls -lt /tmp/Flash* | cut -d " " -f5 | head -n1)
(
until [ "$var" = "$var1" ]
do
var1=$var
sleep 2
var=$(ls -lt /tmp/Flash* | cut -d " " -f5 | head -n1)
echo ""
done | zenity --progress --pulsate --auto-close --text="Téléchargement en cours..."
)
clear
echo "\nFichier trouvé!"
### Copie du fichier de /tmp a /home/MP3/
cp $file ~/MP3/conv/conv.flv
echo "\nCopie terminé!"
### Conversion FLV->MP3
mplayer -dumpaudio -dumpfile ~/MP3/conv/conv.mp3 ~/MP3/conv/conv.flv
##echo "\nConversion Audio terminée"
### supression du flv
rm -f ~/MP3/conv/conv.flv
### Tag
#### Génération du PUID du mp3
##echo "\nGénération de l'empreinte audio. Patientez ..."
PUID=$(genpuid $key ~/MP3/conv/conv.mp3 | grep " puid: " | sed -e 's/.*puid: //')
#### Récupération des tag avec Musicbrainz©
##echo "\nRécupération des Tags sur Musicbrainz©"
wget -O ~/MP3/conv/.PUID http://musicbrainz.org/show/puid/?puid=$PUID
#### Vérification des tag
verif=$(cat ~/MP3/conv/.PUID | grep "This <" | sed -e 's/.*<strong>//' | sed -e 's/<\/strong>.*//')
if [ "$verif" = "PUID" ]; then
{
##### Tag non trouvé sur Musicbrainz©
choix=$(zenity --list \
--title="Voulez vous les rentrer:" \
--column="indice" --column="Description" \
"1" "Via la base de données CDBD" \
"2" "manuellement" )
if [ "$choix" = "1" ]; then
{
###### Tagage avec lltag (ID3 v1)
cddb=$(zenity --entry \
--title="Artiste/Album" \
--text="Entrer le nom de l'Artiste et/ou de l'album:" \
--entry-text "" \ )
lltag --cddb-query "$cddb" ~/MP3/conv/conv.mp3
}
else
{
###### Tagage manuel
clear
martiste=$(zenity --entry \
--title="Artiste" \
--text="Nom de l'artiste:" \
--entry-text "Artiste Inconnu" \ )
malbum=$(zenity --entry \
--title="Album" \
--text="Nom de l'Album:" \
--entry-text "Album Inconnu" \ )
mgenre=$(zenity --entry \
--title="Genre" \
--text="Nom du genre:" \
--entry-text "genre inconnu" \ )
mtitre=$(zenity --entry \
--title="Titre" \
--text="Saisissez le titre :" \
--entry-text "Titre Inconnu" \ )
###### Mise en majuscule la premiere lettre de chaque variable (plus propre)
martiste=$(echo "$martiste" | sed 's/^./\u&/')
malbum=$(echo "$malbum" | sed 's/^./\u&/')
mgenre=$(echo "$mgenre" | sed 's/^./\u&/')
mtitre=$(echo "$mtitre" | sed 's/^./\u&/')
eyeD3 -a "$martiste" -A "$malbum" -t "$mtitre" -G "$mgenre" ~/MP3/conv/conv.mp3
sleep 3
}
fi
}
else
{
##### Tag trouvé sur Musicbrainz©
clear
##### Définition des variables
mbartist=$(cat ~/MP3/conv/.PUID | grep "<table class=\"artisttitle\">" | sed -e 's/.*artist page">//g' | sed -e 's/<\/a.*//' | sed -e "s/'/'/g" | head -n1)
mbalbum=$(cat ~/MP3/conv/.PUID | grep "/release/" | sed -e 's/.*">//g' | sed -e 's/<\/a.*//' | sed -e "s/'/'/g" | head -n1)
mbtitre=$(cat ~/MP3/conv/.PUID | grep "/track/" | sed -e 's/.*">//g' | sed -e 's/<\/a.*//' | sed -e "s/'/'/g" | head -n1)
mbtrack=$(cat ~/MP3/conv/.PUID | grep "no\">" | sed -e 's/.*">//g' | sed -e 's/<\/t.*//' | sed -e "s/'/'/g" | head -n1)
##### Affichage des Tags trouvés
mbartist=$(echo "\nArtiste : '"$mbartist"'")
mbalbum=$(echo "\nAlbum : '"$mbalbum"'")
mbtrack=$(echo "\nPiste : '"$mbtrack"'")
mbtitre=$(echo "\nTitre : '"$mbtitre"'")
if zenity --question \
--text="$mbartist $mbalbum $mbtrack $mbtitre "
then
{
###### Tag conforme puis definission du Genre (pas donné par Musicbrainz©)
mbgenre=$(zenity --entry \
--title="Genre" \
--text="Entrez le Genre de l'Album:" \
--entry-text "Genre Inconnu" )
eyeD3 -a "$mbartist" -A "$mbalbum" -t "$mbtitre" -G "$mbgenre" -n "$mbtrack" ~/MP3/conv/conv.mp3
sleep 3
}
else
{
###### Tag non conforme
choix=$(zenity --list \
--title="Voulez vous les rentrer:" \
--column="indice" --column="Description" \
"1" "Via la base de données CDBD" \
"2" "manuellement" )
if [ "$choix" = "1" ]; then
{
####### Tagage avec lltag (ID3 v1)
echo "\nEntrez le nom de l'artiste ou l'album puis laissez vous guider"
read cddb
lltag --cddb-query "$cddb" ~/MP3/conv/conv.mp3
####### Conversion des tags ID3 v1 -> ID3 v2.4
eyeD3 --to-v2.4 ~/MP3/conv/conv.mp3
clear
}
else
{
####### Tagage manuel
martiste=$(zenity --entry \
--title="Artiste" \
--text="Entrez le nom l'artiste:" \
--entry-text "Artiste Inconnu" )
malbum=$(zenity --entry \
--title="Album" \
--text="Entrez le nom de l'album:" \
--entry-text "Album Inconnu" )
mgenre=$(zenity --entry \
--title="Genre" \
--text="Entrez le Genre de l'Artiste:" \
--entry-text "Genre Inconnu" )
mtitre=$(zenity --entry \
--title="Titre" \
--text="Entrez le Titre de la chanson:" \
--entry-text "Titre Inconnu" )
####### Mise en majuscule la premiere lettre de chaque variable (plus propre)
martiste=$(echo "$martiste" | sed 's/^./\u&/')
malbum=$(echo "$malbum" | sed 's/^./\u&/')
mgenre=$(echo "$mgenre" | sed 's/^./\u&/')
mtitre=$(echo "$mtitre" | sed 's/^./\u&/')
eyeD3 -a "$martiste" -A "$malbum" -t "$mtitre" -G "$mgenre" ~/MP3/conv/conv.mp3
sleep 3
}
fi
}
fi
}
fi
clear
##echo "Insertion des tags Terminer"
### Supression du fichier .PUID
rm -f ~/MP3/conv/.PUID
### Extraction des variables (ruse siou)
eyeD3 --rename="%Asupr1%asupr2%t" ~/MP3/conv/conv.mp3
### Définition des variables
ARTIST=$(ls -lt ~/MP3/conv/*.mp3 | head -n1 | sed -e 's/.*MP3\/conv\///' | sed -e 's/supr1.*//')
ALBUM=$(ls -lt ~/MP3/conv/*.mp3 | head -n1 | sed -e 's/.*MP3\/conv\///' | sed -e 's/.*supr1//' | sed -e 's/supr2.*//')
TITRE=$(ls -lt ~/MP3/conv/*.mp3 | head -n1 | sed -e 's/.*MP3\/conv\///' | sed -e 's/.*supr2//' | sed -e 's/.mp3.*//')
MOVE=$(ls -lt ~/MP3/conv/*.mp3 | head -n1 | sed -e 's/.*MP3\/conv\///')
### Si on a tag avec la CDDB les variable seront modifié afin de garder les accents correctement
if [ "$choix" = "1" ];then
{
ARTIST=$(lltag -S ~/MP3/conv/"$MOVE" | grep "ARTIST" | sed -e 's/.*=//')
ALBUM=$(lltag -S ~/MP3/conv/"$MOVE" | grep "ALBUM" | sed -e 's/.*=//')
TITRE=$(lltag -S ~/MP3/conv/"$MOVE" | grep "TITLE" | sed -e 's/.*=//')
}
fi
### Création des dossiers /artist/album
mkdir -p ~/MP3/"$ARTIST"/"$ALBUM"/
### Déplacement du mp3 dans le dossier /$artist/$album
mv ~/MP3/conv/"$MOVE" ~/MP3/"$ARTIST"/"$ALBUM"/"$TITRE".mp3
clear
zenity --info \
--text="$TITRE convertie et rangée dans : $HOME/MP3/$ARTIST/$ALBUM/ \n Merci de votre utilisation. A bientôt"
}
else
{
zenity --error \
--text="Le fichier n'existe pas, du moins n'est pas dans le répertoire /tmp ou il n'est pas chargé. Merci de relancer le deezaster."
}
fi
}
#Non
else
{
zenity --error \
--text="Merci d'avoir lancer deezaster pour ne pas l'utiliser c'est malin ..."
}
fi
exit 0
edit : je vais essayer autoglade ce soir. Je ne sais pas si c'est possible de faire une seule fenêtre pour tout au lieu d'ouvrir une fenêtre à chaque fois.