3 votes

AppleScript pour trouver des fichiers par correspondance exacte de nom à partir d'une variable Automator

J'ai un flux de travail qui récupère le nom de la piste d'un seul morceau dans mon lecteur mp3 et le stocke dans une variable. Je l'utilise ensuite dans l'action Spotlight pour trouver cette piste dans ma bibliothèque iTunes, mais l'action Spotlight donne plusieurs résultats alors que je ne veux que la piste exacte et pas toutes les pistes qui contiennent le nom.

J'ai besoin d'un moyen ou d'un script pour remplacer cette action. Toutes les recherches donnent des commandes de Terminal que je ne comprends pas ou que je ne sais pas utiliser avec Automator.

enter image description here

Voici un applescript que j'ai trouvé et qui fonctionne mais qui est vraiment très lent, il fait apparaître le Finder à chaque boucle. Existe-t-il un moyen d'accélérer ce processus, ma bibliothèque contient plus de 10 000 pistes ? https://www.dropbox.com/s/o14eb19b2459vdo/by%20default%202018-07-19%20at%20Thursday%2C%2019%20Jul%20%2017.55.18.PNG?dl=0

1voto

OnePablo Points 1

Je n'ai pas Snow Leopard Je suis donc limité dans ce que je peux tester comme étant viable pour votre système. Par conséquent, veuillez garder à l'esprit que la solution suivante a été conçue et testée en utilisant les éléments suivants :

Infos système : Version d'AppleScript : "2.7", version du système : "10.13.5"

Ceci étant dit, je ne vois pas pourquoi cela ne fonctionnerait pas sur El Capitan . Il s'agit de pourrait travailler sur Snow Leopard mais je suis moins sûr.

La solution que je propose consiste à remplacer votre Spotlight Automator avec une action Run AppleScript action :

Automator Workflow

Le code contenu dans le Run AppleScript est le suivant :

    use framework "Foundation"

    property ca : a reference to current application

    on run {input, parameters}
        set MusicFolder to "/Volumes/Media/Music/iTunes/iTunes Music/Music/"

        set FileManager to ca's NSFileManager's defaultManager()
        set MusicFiles to (FileManager's subpathsAtPath:MusicFolder)'s ¬
            pathsMatchingExtensions:{"mp3", "m4a"}
        set [filename] to input
        set format to "SELF endswith " & ("/" & filename & ".mp3")'s quoted form & ¬
            " OR SELF endswith " & ("/" & filename & ".m4a")'s quoted form
        set filter to ca's NSPredicate's predicateWithFormat:format

        set matches to {}

        repeat with match in (MusicFiles's filteredArrayUsingPredicate:filter) #'
            set end of matches to POSIX file (MusicFolder & match as text) as alias
        end repeat

        return matches
    end run

Cela renverra des pistes avec le exact fourni par l'option trackName dans le flux de travail. Par conséquent, si j'avais défini trackName dans mon essai pour "Everywhere I Go" (c'est-à-dire sans le précédent "04" ), la recherche aurait donné un résultat vide.

N'oubliez pas non plus que certaines pistes peuvent avoir des noms de fichiers identiques provenant de dossiers/albums différents. S'il y a deux fichiers dans des dossiers différents, tous deux appelés "01 Song.mp3" les deux fichiers seront retournés dans la recherche.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X