2 votos

Un servicio de automatización que abre un archivo con el mismo nombre pero diferente extensión del elemento seleccionado

Mi colección de películas tiene esta configuración:

  • una carpeta "Movies/Covers" con las imágenes de las carátulas (archivos jpg)
  • una carpeta "Movies/Videos" con los archivos de vídeo correspondientes (principalmente archivos mp4)

Los archivos de ambas carpetas tienen el mismo nombre base.

Me gustaría poder hacer clic con el botón derecho en una imagen de la carpeta de portadas, seleccionar el servicio "abrir vídeo" y abrir el archivo de vídeo correspondiente en la carpeta de vídeos con el reproductor VLC.

Soy muy nuevo en Automator e inicialmente intenté hacer esto para los archivos en la misma carpeta con este flujo de trabajo:

Pero no funciona porque el archivo renombrado de xxx.jpg a xxx.mp4 abierto por VLC sigue siendo una imagen.

¿Alguien podría ayudarme?

PD: Antes solía añadir la carátula a los archivos de vídeo como iconos y elegir la película en la vista de cuadrícula del finder, pero esto ha dado problemas tras actualizar el sistema operativo en varias ocasiones.

0 votos

Bienvenido al sitio - Space1815. Asegúrese de aceptar y votar las buenas respuestas - que es la mejor manera de agradecer a la gente por ayudar. (Y, por supuesto, mirando hacia abajo para responder a las preguntas que usted sabe cuando usted los encuentra)

1voto

red_menace Puntos 111

No quieres cambiar el nombre de el archivo, sólo tiene que utilizar una nueva ruta de carpeta para buscar un archivo que coincida. Automator no incluye acciones por defecto para este tipo de cosas, por lo que tendrás que usar una acción de terceros o un script, o hacer esa parte tú mismo.

Para una solución AppleScript, cree un nuevo flujo de trabajo de servicio/acción rápida que reciba files or folders en el Finder y añadir un Ejecutar AppleScript reemplazando la acción por defecto script por lo siguiente:

on run {input, parameters} -- match name of an input item to a videoFolder item
    set videoFolder to ((path to home folder) as text) & "Movies:Videos:" -- the HFS folder path containing matching video files
    repeat with anItem in the input -- return the first match
        set {theName, theExtension} to getNamePieces from anItem
        tell application "Finder"
            set matches to (files of folder videoFolder whose name starts with theName) -- match any extension
            if matches is not {} then return (first item of matches) as alias
        end tell
    end repeat
    return missing value -- no match
end run

to getNamePieces from someItem -- get name and extension from a file item
    tell application "System Events" to tell disk item (someItem as text)
        set {theName, theExtension} to {name, name extension}
    end tell
    if theExtension is not "" then
        set theName to text 1 thru -((count theExtension) + 2) of theName -- the name part
        set theExtension to "." & theExtension
    end if
    return {theName, theExtension}
end getNamePieces

...y luego terminar añadiendo un Abrir elementos del buscador y guardar el flujo de trabajo.

0 votos

¿Por qué no utilizar movies folder en lugar de home folder' so all you need is & "Videos:"` Además, dado que el 99% ya está guionizado, ¿por qué añadir una acción de Abrir Elementos del Finder cuando se puede simplemente reemplazar return con open en if matches is not {} then return (first item of matches) y deshacerse del return missing value -- no match ya que no será necesario ya que la acción Run AppleScript es todo lo que realmente se necesita. KISS

0 votos

Normalmente intento mantener las opciones abiertas, por ejemplo si los archivos particulares están en algún lugar que no sea una de las carpetas estándar, se hace deseable manejar múltiples archivos o usar otras acciones en el resultado de script</strkeep><strkeep>. Supongo que es una cosa de estilo.

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