3 votos

AppleScript para encontrar archivos por coincidencia de nombre exacto de una variable de Automator

Tengo un flujo de trabajo que recibe el nombre de la pista de una pista única en mi reproductor de mp3 y la almacena en una variable. Yo, a continuación, utilizar esta en el punto de mira de acción para encontrar la pista en mi Biblioteca de iTunes, pero el Foco de la acción da varios resultados cuando quiero sólo quieren exactamente pista no todas las pistas que contiene el nombre.

Necesito alguna forma, o de una secuencia de comandos para reemplazar esta acción. Todas las búsquedas que da los comandos de Terminal que no entiendo o cómo utilizar con Automator.

enter image description here

He aquí un applescript que he encontrado que funciona, pero es muy, muy lento, playa de las bolas con el localizador en cada bucle, hay una manera de acelerar este proceso,mi biblioteca dispone de más de 10,000 canciones? gracias https://www.dropbox.com/s/o14eb19b2459vdo/by%20default%202018-07-19%20at%20Thursday%2C%2019%20Jul%20%2017.55.18.PNG?dl=0

1voto

qarma Puntos 71

No tengo Snow Leopard, así que estoy limitado en lo que puedo probar como viable para su sistema. Por lo tanto, por favor, tenga en cuenta que la siguiente solución fue ideado y probado usando el siguiente:

Sistema de información: AppleScript versión: "2.7", versión del sistema: "10.13.5"

Con eso dicho, ahora veo la razón de que esta no debe trabajar en El Capitan. Se podría trabajar en Snow Leopard, pero no estoy tan seguro.

Mi propuesta de solución es reemplazar su Spotlight de Automator acción con un Run AppleScript acción:

Automator Workflow

El código que figura en el Run AppleScript es la siguiente:

    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

Esto devolverá las pistas con el exacto nombre de archivo suministrado por el trackName variable en el flujo de trabajo. Por lo tanto, había que establecer trackName en mi prueba de funcionamiento a "Everywhere I Go" (es decir, sin la anterior "04"), la búsqueda ha devuelto un resultado vacío.

Además, ten en cuenta que puede que tenga algunas de las pistas que tienen los mismos nombres de archivos de diferentes carpetas/discos. Si hay dos archivos en diferentes carpetas ambos pidieron "01 Song.mp3", ambos archivos deberán ser devueltos en la búsqueda.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X