Aquí estoy otra vez con otra pregunta de iTunes AppleScript. Tengo un script de trabajo en el que seleccionas un trabajo (varias "canciones" de iTunes) y le digo qué debe configurar los metadatos del trabajo para esa selección. También le dices dónde comienza el nombre del movimiento en el nombre de la canción, y copia todo lo que está después de esa posición en la etiqueta de movimiento, excluyendo todos los números romanos. También, por supuesto, numera los movimientos.
Aquí está el código para eso:
tell application "iTunes"
set sel to selection of front browser window
if sel is {} then
try
display dialog "Nothing is selected…" buttons {"Quit"} with icon 0
end try
return
end if
set c to (count of sel)
set songName to (get name of item 1 of sel)
set workName to display dialog "Edit for Work name and then click OK." default answer songName --prompt for work name
set movementLength to display dialog "Edit to everything except the movement name. Do not include the roman numeral if one is present. If an arabic numeral is present, include it." default answer songName --prompt for movement length
repeat with i from 1 to c --set the movement numbers
set thisTrack to item i of sel
set songName to (get name of thisTrack)
set work of thisTrack to text returned of workName
set movement number of thisTrack to i
set movement count of thisTrack to c
set movement of thisTrack to my delRomNum(text ((length of text returned of movementLength) + 1) thru (length of songName) of songName as string) -- copy movement text from song name and delete roman numerals
end repeat
end tell
on delRomNum(t) -- the perl command search and delete any roman numeral (must be a word followed by the period and a space character)
do shell script "/usr/bin/perl -pe 's/\b[IVXLCDM]+\b. //g' <<< " & quoted form of t
end delRomNum
Puede ver mi publicación sobre ese script aquí: Buscar -y-reemplazar AppleScript para iTunes Track Names
De todos modos, ese script ahora no se ha vuelto lo suficientemente eficiente como para mi uso (¡proceso muchas canciones clásicas)! Utilizando el script anterior, tengo que seleccionar cada trabajo individual, y recortarlo en consecuencia para el trabajo, y luego para el movimiento.
Lo que me gustaría crear ahora es un script que puede hacer todo el proceso para múltiples trabajos a la vez, por ejemplo, un álbum completo.
Tendría que encontrar todas las pistas que contenían I.
y establecerlas como punto de partida para el guión que he descrito anteriormente, y también obtener la posición de ese I.
y recortar en consecuencia para las etiquetas Trabajo y Movimiento para ese trabajo en particular, por ejemplo, todo antes de I.
y el espacio que lo precede se establecerá como el trabajo, y todo después de él se establecerá como el movimiento.
Puedo ver que esto es lo que tengo que hacer, ¡pero soy demasiado noob de AppleScript para implementarlo! De todos modos, para mí, el verdadero desafío consiste en determinar si una cadena se encuentra dentro de otra (por ejemplo, verificar si I.
está dentro del nombre de la canción) y encontrar su posición dentro del nombre de la canción. ¡Si supiera cómo hacer esas dos cosas, probablemente podría escribir el resto del guión!
Cualquier sugerencia / idea sería muy útil. Y espero que mi descripción tenga sentido. Gracias!
Nota: Aunque obtuve respuesta a la parte clave y puedo escribir el resto del script yo mismo, agregaré una entrada / salida de muestra.