Code : Tout sélectionner
#include <File.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
; INCLUDES
Opt("WinTitleMatchMode", 2)
;Fonction a mettre en tête de script, sinon ça détruit tous les Title des Control !!!
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Music Tagger", 455, 395, 5, 5)
Global $Input1 = GUICtrlCreateInput("", 96, 10, 121, 21)
Global $Button2 = GUICtrlCreateButton("Parcourir", 224, 8, 68, 25)
Global $Label1 = GUICtrlCreateLabel("WavDatabase", 15, 12, 80, 20)
Global $Input2 = GUICtrlCreateInput("", 96, 50, 121, 21)
Global $Button3 = GUICtrlCreateButton("Parcourir", 224, 48, 68, 25)
Global $Label2 = GUICtrlCreateLabel("TagRename381", 15, 52, 80, 20)
Global $Input3 = GUICtrlCreateInput("", 156, 90, 40, 21)
Global $Input4 = GUICtrlCreateInput("", 96, 90, 40, 21)
Global $Label3 = GUICtrlCreateLabel("I Agree", 15, 92, 80, 20)
Global $Input5 = GUICtrlCreateInput("", 156, 130, 40, 21)
Global $Input6 = GUICtrlCreateInput("", 96, 130, 40, 21)
Global $Label4 = GUICtrlCreateLabel("Chemin Dossier", 15, 132, 80, 20)
Global $Input7 = GUICtrlCreateInput("", 156, 170, 40, 21)
Global $Input8 = GUICtrlCreateInput("", 96, 170, 40, 21)
Global $Label5 = GUICtrlCreateLabel("Pos Clic", 15, 172, 80, 20)
Global $Input9 = GUICtrlCreateInput("", 156, 210, 40, 21)
Global $Input10 = GUICtrlCreateInput("", 96, 210, 40, 21)
Global $Label6 = GUICtrlCreateLabel("Champ Title", 15, 212, 80, 20)
Global $Input11 = GUICtrlCreateInput("", 156, 250, 40, 21)
Global $Input12 = GUICtrlCreateInput("", 96, 250, 40, 21)
Global $Label7 = GUICtrlCreateLabel("Champ Artiste", 15, 252, 80, 20)
Global $Input13 = GUICtrlCreateInput("", 156, 290, 40, 21)
Global $Input14 = GUICtrlCreateInput("", 96, 290, 40, 21)
Global $Label8 = GUICtrlCreateLabel("Champ Album", 15, 292, 80, 20)
Global $Input15 = GUICtrlCreateInput("", 391, 90, 40, 21)
Global $Input16 = GUICtrlCreateInput("", 331, 90, 40, 21)
Global $Label9 = GUICtrlCreateLabel("Add Cover", 250, 92, 80, 20)
Global $Input17 = GUICtrlCreateInput("", 391, 130, 40, 21)
Global $Input18 = GUICtrlCreateInput("", 331, 130, 40, 21)
Global $Label10 = GUICtrlCreateLabel("Clic Cover", 250, 132, 80, 20)
Global $Input19 = GUICtrlCreateInput("", 391, 170, 40, 21)
Global $Input20 = GUICtrlCreateInput("", 331, 170, 40, 21)
Global $Label11 = GUICtrlCreateLabel("Ouvrir", 250, 172, 80, 20)
Global $Input21 = GUICtrlCreateInput("", 391, 210, 40, 21)
Global $Input22 = GUICtrlCreateInput("", 331, 210, 40, 21)
Global $Label12 = GUICtrlCreateLabel("Save", 250, 212, 80, 20)
Global $Input23 = GUICtrlCreateInput("", 391, 250, 40, 21)
Global $Input24 = GUICtrlCreateInput("", 331, 250, 40, 21)
Global $Label13 = GUICtrlCreateLabel("Champ Année", 250, 252, 80, 20)
Global $Input25 = GUICtrlCreateInput("", 391, 290, 40, 21)
Global $Input26 = GUICtrlCreateInput("", 331, 290, 40, 21)
Global $Label14 = GUICtrlCreateLabel("Champ Track", 250, 292, 80, 20)
Global $Input27 = GUICtrlCreateInput("", 96, 330, 121, 21)
Global $Button4 = GUICtrlCreateButton("Parcourir", 224, 330, 68, 25)
Global $Label15 = GUICtrlCreateLabel("Chemin Bureau", 15, 332, 80, 20)
Global $Button1 = GUICtrlCreateButton("Tagg All !", 360, 350, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
; GUI
Global $artistsNamesFoldersArray, $albumsNamesFoldersArray, $albums2NamesFoldersArray, $anneeNamesFoldersArray, $musicNamesFoldersArray, $trackNamesFoldersArray
Global $musicsArray, $temp, $i, $j, $k, $e, $l, $m, $n, $o
Global $counter1 = 1
Global $counter2 = 1
Global $counter3 = 1
Global $ChemTG, $ChemD
;DECLARATION VARIABLES
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button2
_Parcourir()
Case $Button1
_Tagg()
MsgBox(0, "Info Script", "Fini ! ;p ", " fichier ")
Case $Button3
_Parcourir2()
Case $Button4
_Parcourir3()
EndSwitch
WEnd
Func _Parcourir()
Global $mainMusicFoldersArray[2] = [1, FileSelectFolder("Sélectionne ta WavDatabase", "")]
GUICtrlSetData($Input1, $mainMusicFoldersArray[1])
EndFunc ;==>_Parcourir
Func _Parcourir2()
Global $ChemTG = [1, FileSelectFolder("Sélectionne ton TagRename", "")]
GUICtrlSetData($Input2, $ChemTG)
EndFunc ;==>_Parcourir2
Func _Parcourir3()
Global $ChemD = [1, FileSelectFolder("Sélectionne ton Bureau", "")]
GUICtrlSetData($Input27, $ChemD)
EndFunc ;==>_Parcourir3
;COEUR SCRIPT
Func _Tagg()
For $i = 1 To $mainMusicFoldersArray[0]
$artistsNamesFoldersArray = _FileListToArray($mainMusicFoldersArray[$i], "*", 2)
If IsArray($artistsNamesFoldersArray) Then
For $j = 1 To $artistsNamesFoldersArray[0]
$albumsNamesFoldersArray = _FileListToArray($mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j], "*", 2)
If IsArray($albumsNamesFoldersArray) Then
For $k = 1 To $albumsNamesFoldersArray[0]
$musicsArray = _FileListToArray($mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j] & "\" & $albumsNamesFoldersArray[$k], "*.wav", 1)
If IsArray($musicsArray) Then
For $e = 1 To $musicsArray[0]
$albums2NamesFoldersArray = _FileListToArray($mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j], "*", 2)
If IsArray($albums2NamesFoldersArray) Then
For $l = 1 To $albums2NamesFoldersArray[0]
$anneeNamesFoldersArray = _FileListToArray($mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j], "*", 2)
If IsArray($anneeNamesFoldersArray) Then
For $m = 1 To $anneeNamesFoldersArray[0]
$musicNamesFoldersArray = _FileListToArray($mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j] & "\" & $albumsNamesFoldersArray[$k], "*.wav", 1)
If IsArray($musicNamesFoldersArray) Then
For $n = 1 To $musicNamesFoldersArray[0]
$trackNamesFoldersArray = _FileListToArray($mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j] & "\" & $albumsNamesFoldersArray[$k], "*.wav", 1)
If IsArray($trackNamesFoldersArray) Then
For $o = 1 To $trackNamesFoldersArray[0]
$albums2NamesFoldersArray[$l] = StringTrimRight("$albumsNamesFoldersArray[$k]", 7)
; On sépare le nom de l'album de l'année de l'album (nom de base étant : [NomAlbum] ([Année]) --> On ne prends que le NOM DE L ALBUM. 7 (4 chiffres, 2 parenthèses, 1 espace)
$anneeNamesFoldersArray[$m] = StringTrimRight("$albumsNamesFoldersArray[$k]", 1)
; On sépare le nom de l'album de l'année de l'album (nom de base étant : [NomAlbum] ([Année]) --> On ne prends que l'ANNEE DE L ALBUM
; On vient de supprimer la parenthèse située tout à droite de l'année, ce qui nous donne : [NomAlbum] ([Année] <-- parenthèse manquante
If Not StringIsDigit("$anneeNamesFoldersArray[$m]") Then
$anneeNamesFoldersArray[$m] = StringTrimLeft("$albumsNamesFoldersArray[$k]", $counter1)
EndIf
;Si la chaîne de caractère n'est pas que des chiffres, alors on supprime un caractère de plus
;Donc a partir d'ici, on a : Artiste , Album , Année
$musicNamesFoldersArray[$n] = StringTrimLeft( _GetMusicName($musicsArray[$e]), 5)
;On supprime les 5 caractères les plus a gauche à savoir : [N°] - Donc on se retrouve juste avec le nom de la musique sans le numéro de track
If Not StringIsDigit("$trackNamesFoldersArray[$o]") Then
$trackNamesFoldersArray[$o] = StringTrimRight(_GetMusicName($musicsArray[$e]), $counter2)
EndIf
;Si la chaine de caractère n'est pas que des chiffres, alors on supprime un caractère.
;Voilà, on a donc maintenant le numéro (track) et le nom exacte de la musique, avec le numéro de track enlevé
Next
EndIf
Next
EndIf
Next
EndIf
Next
EndIf
Next
EndIf
Next
EndIf
Next
EndIf
Next
ShellExecute("X")
;.................................................................................................................................................................................................................
Sleep(10000)
ControlClick("Tag&Rename 3.8.1", "", "[CLASS:TButton; TEXT:I agree; INSTANCE:4]", "left", 1)
;Clic sur le bouton I agree
;Tag&Rename EST OUVERT !!!
_TaggAlb()
EndFunc ;==>_Tagg
Func _TaggAlb()
ControlClick("Tag&Rename 3.8.1", "", "[CLASS:TComboEdit; INSTANCE:1]", "left", 1, 466, 301)
;Clic dans le champ pour spécifier le chemin d'un dossier
Sleep(2000)
ControlSend("Tag&Rename 3.8.1", "", "[CLASS:TComboEdit; INSTANCE:1]", "C:\Users\LALALA\Desktop\" & $mainMusicFoldersArray[$i] & "\" & $artistsNamesFoldersArray[$j] & "\" & $albumsNamesFoldersArray[$k])
;On donne le chemin du premier dossier
Sleep(2000)
ControlClick("Tag&Rename 3.8.1", "", "[CLASS:TMusicFilesList; INSTANCE:1]", "left", 1, 1554, 374)
;On clic tout a droite du champ du premier morceau, si on clik dessus directement, ça le renomme... En gros : on désélectionne la sélection de base faite par Tag = (tous les .wav).
Sleep(2000)
ControlSend("Tag&Rename 3.8.1", "", "[CLASS:TMusicFilesList; INSTANCE:1]", "{UP}")
;Touche flèche du haut, sélection du tout premier morceau
Sleep(2000)
_TaggMorc()
;On appelle la fonction qui permet de tagger un morceau, on a donc sélectionner le premier morceau et on l'a taggé.
Sleep(2000)
If Not $counter3 = $musicsArray[0] Then
ControlSend("Tag&Rename 3.8.1", "", "[CLASS:TMusicFilesList; INSTANCE:1]", "{DOWN}")
;Touche flèche du bas, sélection du morceau situé en dessous
Sleep(2000)
_TaggMorc()
Sleep(2000)
$counter3 += 1
EndIf
;Si le compteur n'a pas la valeur du nombre de morceau de l'album alors on sélectionne le morceau suivant, on le tagg et on ajoute 1 au compteur
;Ca permet donc tagger tous les morceaux de l'albums sans tagger dans le vide ou ne pas en tagger
$counter3 = 1
;On remet au compteur 3 sa valeur d'origine
EndFunc ;==>_TaggAlb
Func _TaggMorc()
ControlSend("Tag&Rename 3.8.1", "", "[CLASS:TMusicFilesList; INSTANCE:1]", "{ENTER}")
;TOUCHE ENTREE !
Sleep(2000)
ControlClick("Tag Editor", "", "[CLASS:TEdit; INSTANCE:11]", "left", 1, 592, 329)
;Clic Champ Title
Sleep(2000)
ControlSend("Tag Editor", "", "[CLASS:TEdit; INSTANCE:11]", "$musicNamesFoldersArray[$n]")
;On écrit la valeur de la variable $musicNamesFoldersArray
Sleep(2000)
ControlClick("Tag Editor", "", "[CLASS:TEdit; INSTANCE:10]", "left", 1, 522, 354)
;Clic Champ Artist
Sleep(2000)
ControlSend("Tag Editor", "", "[CLASS:TEdit; INSTANCE:10]", "$artistsNamesFoldersArray[$j]")
;On écrit la valeur de la variable $artistsNamesFoldersArray
Sleep(2000)
ControlClick("Tag Editor", "", "[CLASS:TEdit; INSTANCE:9]", "left", 1, 252, 378)
;Clic Champ Album
Sleep(2000)
ControlSend("Tag Editor", "", "[CLASS:TEdit; INSTANCE:9]", "$albums2NamesFoldersArray[$l]")
;On écrit la valeur de la variable $albums2NamesFoldersArray
Sleep(2000)
ControlClick("Tag Editor", "", "[CLASS:TEdit; INSTANCE:8]", "left", 1, 143, 402)
;Clic Champ Année
Sleep(2000)
ControlSend("Tag Editor", "", "[CLASS:TEdit; INSTANCE:8]", "$anneeNamesFoldersArray[$m]")
;On écrit la valeur de la variable $anneeNamesFoldersArray
Sleep(2000)
ControlClick("Tag Editor", "", "[CLASS:Edit; INSTANCE:2]", "left", 1, 1333, 328)
;Clic Champ Track Number
Sleep(2000)
ControlSend("Tag Editor", "", "[CLASS:Edit; INSTANCE:2]", "$trackNamesFoldersArray[$o]")
;On écrit la valeur de la variable $trackNamesFoldersArray
Sleep(2000)
ControlClick("Tag Editor", "", "[CLASS:TButton; INSTANCE:12]", "left", 1, 1446, 507)
;Clic Boutton Add (ajouter une cover)
Sleep(2000)
ControlClick("Find art file.", "", "[CLASS:DirectUIHWND; INSTANCE:2]", "left", 1, 227, 173)
;Clic Sur la cover
Sleep(2000)
ControlClick("Find art file.", "", "[CLASS:Button; INSTANCE:1]", "left", 1, 623, 472)
;Clic sur Ouvrir la cover
Sleep(2000)
ControlClick("Tag Editor", "", "[CLASS:TButton; INSTANCE:4]", "left", 1, 1225, 620)
;Clic sur Save
Sleep(2000)
EndFunc ;==>_TaggMorc
Func _GetMusicName($file)
Local $tempArray, $c, $name
$tempArray = StringSplit($file, ".")
If IsArray($tempArray) Then
For $c = 1 To $tempArray[0] - 1
$name &= $tempArray[$c]
Next
Return $name
EndIf
Return $file
EndFunc ;==>_GetMusicName