3
3tcetera

  • 9 déc. 2014
  • Inscrit 11 juil. 2014
  • Bonjour,

    Je poste aujourd'hui ce topic dans le but de trouvé de l'aide pour un script que j'avais commencer a faire il y a quelque semaines !
    Mais par manque de temps et de compétences je me tourne vers vous pour m'aider a le faire fonctionner ... Et ensuite le partagé bien sur ^^

    Alors voila,
    Je suis entièrement sous linux (Xubuntu & Debian at home et Debian sur mon serveur)
    J'upload pas mal de musique, mais j'ai toujours le même problème lors de la création du .nfo ! En effet mediainfo ne propose pas l'analyse de dossier entier mais seulement l'analyse de fichier un par un ! Contrairement a MusicNFOBuilder sous Windows.

    Donc je suis parti dans l'optique d'avoir un résultat plus ou moins similaire (voir mieux vu les possibilités de mediainfo) à MusicNFOBuilder en intégrant mediainfo dans un script !

    ce que j'aimerais comme résultat par exemple (ne pas tenir compte de info elles sont pas correct c'est juste pour vous donner une idée) :
    ---------------------------------------------------------------------
       Pink Floyd - The Dark Side Of The Moon
    ---------------------------------------------------------------------
    
    Artist                                   : Pink Floyd
    Album                                    : Dark Side of the Moon 
    Genre                                    : Rock
    Source                                   : CD
    Year                                     : 1973
    
    Format                                   : FLAC
    Sampling rate                            : 44.1 KHz
    Bit depth                                : 16 bits
    Channel(s)                               : 2 channels
    
    ---------------------------------------------------------------------
                           Tracklisting
    ---------------------------------------------------------------------
       N°.Trackname                                [Duration] - [Bitrate] - [Size]
       1. Eclipse  [Live]                          [02:19] - [884 Kbps] - [20.6MiB]
       2. Any Colour You Like  [Live]              [08:10] - [884 Kbps] - [20.6MiB]
       3. Brain Damage  [Live]                     [03:43] - [884 Kbps] - [20.6MiB]
       4. Breathe (In the Air)  [Live]             [02:50] - [884 Kbps] - [20.6MiB]
       5. Money  [Live]                            [08:41] - [884 Kbps] - [20.6MiB]
       6. On the Run  [Live]                       [05:08] - [884 Kbps] - [20.6MiB]
       7. Speak to Me  [Live]                      [02:45] - [884 Kbps] - [20.6MiB]
       8. The Great Gig in the Sky  [Live]         [06:50] - [884 Kbps] - [20.6MiB]
       9. Time  [Live]                             [06:31] - [884 Kbps] - [20.6MiB]
      10. Us and Them  [Live]                      [08:09] - [884 Kbps] - [20.6MiB]
    
    Playing Time.........: 55:11
    Total Size...........: 331,61 MB
    
    Voila ce que j'ai réussi a faire :
    #!/bin/bash
    
    OUT=$"$rep""$*".nfo
    
    
    # Vérification parametre $*
    
    if [ "$#" -eq 0 ]; then 
        echo "Saisir le répertoire" 
        read -r rep 
    else
        rep="$*" 
    fi
    
    if [ -d "$*" ]
    	then
    	echo -e "$# est un repertoire"
    	rep="$*"
    elif [ -f "$*" ]
    	then
    	echo -e "$# est un fichier"
    	fil="$*"
    tracknum=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/tracknum.txt "$fil" | head -n 1)
    tracktitle=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/tracktitle.txt "$fil" | head -n 1)
    trackduration=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/trackduration.txt "$fil" | head -n 1)
    trackbitrate=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/trackbitrate.txt "$fil" | head -n 1)
    tracksize=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/tracksize.txt "$fil" | head -n 1)
    			case ${fil#*.} in 
                                    *.flac)			      echo -e "$tracknum. $tracktitle""$trackduration" "$trackbitrate" "$tracksize">> "$OUT"
    
    				*.jpg | *.jpeg | *.png)       echo -e "fichier images traité">> "$OUT";;
                                    *.cue | *.log)    	      echo -e "fichier cue log traité">> "$OUT";;
                                    *)	                      echo -e "autre fichier traité $fil">> "$OUT";;
                            esac 
    
    else
    	echo -e "$fil ce fichier est étrange vérifiez votre demande "
    	read -r rep
    fi
    
    cat "$OUT"
    Un 2eme essai ( entre temps j'ai compris comment mettre un peu de couleur ) :
    #!/bin/bash
    
    # Variable Couleurs :
    
    RED="\\033[1;31m"
    GREEN="\\033[1;32m"
    BLUE="\\033[1;34m"
    NORMAL="\\033[0;39m"
    help()
        { 
          echo -e "nfomusic.sh dossier_ou_fichier.flac"
        }
    
    #Dossier 
    
    file=0
    dir=0
    
    if [ "$#" -eq 0 ]; then 
        echo "Saisir le répertoire" 
        read -r rep 
    else 
        rep="$*"
    fi     
    cd "$rep"
    
    	for i in *; do  
                    if [ -f "$i" ] 
                    then    
                            let file=$file+1
                    fi 
    
                    if  [ -d "$i" ]
                    then
                            let dir=$dir+1          
                    fi 
    	done
    cd ..
    echo -e "$BLUE$rep$NORMAL""est un dossier qui contient :"
    echo -e ""
    echo -e "$GREEN$file$NORMAL fichiers :"
    echo -e ""
    echo -e "$GREEN"
    ls -1 "$rep"*.*
    echo -e "$NORMAL"
    echo -e ""
    echo -e ""
    	if [ $dir=0 ]
    	then
    	echo -e "et $RED$dir$NORMAL dossier"
    	echo -e ""
    	else
    	echo -e "et $RED$dir$NORMAL dossier :"
    	echo -e ""
    	ls -1 "$rep"*/
    	fi
    
    
    fileinrep="ls -1 $rep*.*"
    echo -e "Voulez vous créer un nfo ?(Y/n)"
    read asw
    
    if [[ $asw =~ ^(yes|y|Y|Yes| ) ]]
    then
    echo -e "continuons :D"
    elif [ $asw -eq 0 ]
    then
    echo -e "continuons :D"
    else
    echo -e "vous avez repondu autre chose que Y ou entrer"
    fi
    
    
    
    artistinfo=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/artist.txt "$rep"*.flac | head -n 1)
    albuminfo=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/album.txt "$rep"*.flac | head -n 1)
    tracknumtitle=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/tracknumtitle.txt "$rep"*.flac)
    trackduration=$(mediainfo --Inform=file:///usr/share/script/NFOmusic/templatemediainfo/trackduration.txt "$rep"*.flac)
    
    touch "$rep"Info.nfo
    chmod 777 "$rep"Info.nfo
    OUT=$"$rep"Info.nfo
    
        echo -e ' Artist   : '"$artistinfo" >> "$OUT"
        echo -e ' Album    : '"$albuminfo" >> "$OUT"    
        echo -e '|' >> "$OUT"   
        echo -e ${ "$tracknumtitle" } ${ "$trackduration" } >> "$OUT"
        echo -e '|' >> "$OUT"
        echo -e '|' >> "$OUT"
    cat "$OUT"
    Mes templates mediainfo (ils sont dans /usr/share/script/NFOmusic/templatemediainfo/ )

    artist.txt:
    General;%Album/Composer%\n
    album.txt :
    General;%Album%\n
    albuminfo.txt :
    General;Artist..:%Album/Composer%\nAlbum...:%Album%\nYear....:%Recorded_Date%\nGenre...:%Genre%\r
    Audio;Format...:%Format%\nSample Rating...:%SamplingRate/String%\nBit Depth...:%BitDepth/String%\n\n
    
    Bon finalement je ne vais pas tous les mettre ici, ils sont téléchargeable ICI
    Il y en a beaucoup et c'est un peu le bordel je sais, désolé !

    Pour comprendre comment fonctionne les templates :
    man mediainfo
    #et
    mediainfo  --Help-Inform
    Si vous avez besoins d'infos supplémentaire n’hésitez pas a me les demander !

    Merci d'avance a ceux qui voudrons bien m'aider, et un gros merci a "mondedie.fr" pour tous ceux qu'il ma appris/offert !
  • Il tombe bien ce topic, j'suis en plein dedans
    c'est vrai que nginx manque de documentations en français, si vous en avez je suis preneur !

    merci