j'ai une liste de lecture iTunes I précédemment sauvegardé dans un fichier texte qui est dans le format suivant:AppleScript pour ajouter plusieurs pistes à partir d'iTunes dans une liste de lecture en utilisant un fichier texte comme source
« title », "artiste », "numéro de piste", "album"
J'ai créé un exemple de fichier en utilisant quatre de ces pistes:
"rituel", "Chick Corea Elektric Band II", "9", "Paint The World"
"Risque", "Deftones", "9", "Diamond Eyes"
"Risveglio", "Gobelin", "10", "Zombi"
"Rituel", "Ashes Divide", "8", "Continuez à me dire que tout va bien"
Toutes les pistes de cette liste de lecture sont actuellement dans iTunes. Je veux ajouter chacune de ces pistes dans une liste de lecture en utilisant AppleScript. Je suis en mesure de le faire avec un seul élément (exemple: titre) avec le AppleScript suivant:
-- set variables
set srcFile to "/Users/kjesso/Documents/=Scripting=/AppleScript/ipod_gym_playlist_track_names_sample.txt"
set allRecords to paragraphs of (read srcFile as «class utf8»)
set myPlaylist to "Test"
property okflag : false
-- check if iTunes is running
tell application "Finder"
if (get name of every process) contains "iTunes" then ¬
set okflag to true
end tell
if okflag then
-- if iTunes is running then do this
tell application "iTunes"
repeat with aRecord in allRecords
set results to (every file track of playlist "Library" whose name is aRecord)
repeat with aTrack in results
duplicate aTrack to playlist myPlaylist
end repeat
end repeat
end tell
else
-- if iTunes is not running do this
return "Unable to execute because iTunes is not running"
end if
Cependant, si un titre de piste en double se trouve d'un artiste différent, il suffit de prendre la première piste depuis le script ne peut pas distinguer entre différents artistes avec seulement le "titre" comme contenu. Les tableaux existent-ils nativement dans AppleScript?
Je suppose que cela devrait être fait avec un fichier de liste de propriétés? Après une autre lecture en ligne, en essayant de créer un tableau pour faire ce que je voulais (capture du titre de la piste, artiste, album, etc.), je suis tombé sur plusieurs threads indiquant qu'il est préférable d'utiliser une liste de propriétés. J'essaye d'accomplir semblable à ce qui a été fait here, mais au lieu d'envoyer la sortie à un dossier de CSV je veux l'envoyer à une liste de lecture dans iTunes.
J'ai créé le fichier de liste de propriétés exemple suivant si je dois utiliser une liste de propriétés pour atteindre mon objectif:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>title</key>
<string>"Ritual"</string>
<key>artist</key>
<string>"Chick Corea Elektric Band II"</string>
<key>album</key>
<string>"Paint The World"</string>
</dict>
<dict>
<key>title</key>
<string>"Risk"</string>
<key>artist</key>
<string>"Deftones"</string>
<key>album</key>
<string>"Diamond Eyes"</string>
</dict>
<dict>
<key>title</key>
<string>"Risveglio"</string>
<key>artist</key>
<string>"Goblin"</string>
<key>album</key>
<string>"Zombi"</string>
</dict>
<dict>
<key>title</key>
<string>"Ritual"</string>
<key>artist</key>
<string>"Ashes Divide"</string>
<key>album</key>
<string>"Keep Telling Myself It's Alright"</string>
</dict>
</plist>
Quelqu'un a des idées sur la façon d'obtenir ce travail?
Merci pour la réponse, mais, si je comprends bien votre réponse, le problème avec cette solution est que je devrais mettre tout le contenu de toutes les pistes dans l'AppleScript, où actuellement toutes les pistes sont dans un fichier texte ou un fichier csv. Cette solution serait bien si c'était seulement quelques pistes comme dans mon exemple, mais j'en ai quelques centaines, d'où ma raison d'essayer de le faire via un script. Quant au fichier plist, je l'ai créé en utilisant un éditeur de texte avec des expressions régulières, donc ce n'était pas si difficile à mettre en place, mais je pouvais aussi le faire avec un script. – KeithJ
Cette solution fonctionnerait très bien s'il existait un moyen de capturer les valeurs de "theTitle", "theAlbum" et "theArtist" à partir du texte source ou du fichier csv, ce qui ramène à mon problème d'origine. – KeithJ
Je viens d'ajouter l'échantillon lu du fichier texte dans ma première réponse. – pbell