1 votos

¿Cómo puedo acceder a un elemento de menú anidado con AppleScript en Photos.app (para abrir cada álbum a su vez, para cambiar la clasificación)?

Mi objetivo final es cambiar todos los álbumes de Photos.app bajo una determinada carpeta a "Mantener ordenado por título" (Ver > Ordenar > Mantener ordenado por título).

No parece posible establecer directamente el orden de clasificación de un álbum a través de AppleScript (al menos no lo he encontrado en el Diccionario).

Así que pensé que podría hacer que AppleScript abriera cada álbum por turnos, y luego cambiar el orden de clasificación.

El primer paso es abrir cada uno de los álbumes por separado, lo que pensé que podía hacer haciendo clic en ellos en el menú Ver > Álbumes. Pero aún no he podido averiguar cómo hacerlo con AppleScript.

screenshot

Esto me lleva al menú "Álbumes":

tell application "Photos" to activate

tell application "System Events" to tell process "Photos"
    menu 1 of menu item "Albums" of menu "View" of menu bar item "View" of menu bar 1
end tell

Resultado:

menu "Albums" of menu item "Albums" of menu "View" of menu bar item "View" of menu bar 1 of application process "Photos" of application "System Events"

Pero no sé cómo pasar de ahí a decir el álbum "Hushings 2020".

Por ejemplo, el resultado de menu items of menu 1 of menu item "Albums" of menu "View" of menu bar item "View" of menu bar 1 es {} .

El resultado de menus of menu item "Albums" of menu "View" of menu bar item "View" of menu bar 1 es ese único menú: {menu "Albums" of menu item "Albums" …}

El resultado de entire contents of menu bar item "View" of menu bar 1 es un montón de datos, pero no parece contener nada del submenú de "Álbumes".

¿Cómo podría encontrar el álbum "Hushings 2020" de forma programada en esta situación?

O bien, ¿puedo lograr mi objetivo de otra manera? Vi que alguien mencionó en otro lugar que vinculó un atajo de teclado a "Mantener clasificado por título" y luego hizo clic manualmente en cada evento y golpeó el atajo. Estoy abierto a eso (es sólo 600 álbumes o algo así), pero me encantaría averiguar cómo hacerlo programáticamente a través de AppleScript en su lugar - o al menos para entender cómo navegar por estos menús.

2voto

user3439894 Puntos 5883

Posible AppleScript solución:

El ejemplo AppleScript código que se muestra a continuación, se probó en script Editor en MacOS Catalina con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .

  • 1 Asume la configuración necesaria y adecuada en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>se han fijado/abordado según las necesidades.

Ejemplo AppleScript código :

tell application "Photos"
    activate
    set albumNames to name of albums
end tell

repeat with thisAlbum in albumNames
    tell application "Photos" to activate
    tell application "System Events"
        tell application process "Photos"
            tell menu bar item "View" of menu bar 1
                click
                click menu item "Albums" of menu 1
                click menu item thisAlbum of menu 1 of menu item "Albums" of menu 1
                click
                click menu item "Sort" of menu 1
                click menu item "Keep Sorted By Title" of menu 1 of menu item "Sort" of menu 1
            end tell
        end tell
    end tell
    delay 0.5
end repeat

Notas:

En mi Fotos todas mis entradas en Mis álbumes son un único nivel de Álbumes Así pues, el ejemplo AppleScript código me ha funcionado.

Si está tratando de dirigirse a Álbumes dentro de un carpeta bajo, por ejemplo "Hushings 2020" entonces:

Cambios:

set albumNames to name of albums

A, por ejemplo,:

set albumNames to name of albums of folder "Hushings 2020"

Tenga en cuenta que debido a la naturaleza de cómo elementos del menú se muestran en este caso, el nombres de álbumes dentro del carpeta debe ser único para el objetivo carpeta .

Es posible que tenga que añadir un delay comando entre los distintos click eventos .

Debido a la kludgy naturaleza de Guiones de interfaz de usuario es propenso a problemas/errores, y en este caso de uso particular, una vez iniciado no se puede hacer nada más en el ordenador y se debe permitir que el script para terminar.

También podría desglosar el Álbumes en múltiples lista y el ciclo a través de un menor número de artículos a la vez, en lugar de intentar hacer los 600 de una sola vez.


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso del <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.


Añadir un atajo de teclado para: Manténgase clasificado por título

Ir a Preferencias del sistema > Teclado > Atajos > Atajos de la aplicación y pulse el botón [+] botón .

Para Aplicación: seleccione [Fotos] .
Para Título del menú: utilice Manténgase clasificado por título
Para Atajo de teclado: uso: ⌥⌘T

A continuación, haga clic en el botón Añadir botón .

enter image description here

A continuación, puede seleccionar una Álbum a la vez y pulse ⌥⌘T seguido de un flecha hacia abajo y así sucesivamente.

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