Удалить несколько работ в одной дорожке программно
Я пишу AppleScript для управления обложками моего альбома. Я пытаюсь написать код, который удалит все произведения искусства, содержащиеся в выбранных дорожках (дорожки iTunes могут содержать до 30 объектов произведений искусства). Это будет эквивалентно выбору треков в iTunes, открытию окна "Информация" и установке (пустого) графического окна.
Например, код, который ДОЛЖЕН работать:
tell application "iTunes" to set t to track 1 of playlist "Example Playlist"
tell t to delete every artwork
Обратите внимание, что синтаксис для удаления только первой иллюстрации: tell t to delete artwork 1
К сожалению, AppleScript не сотрудничает. Если в треке 2 произведения, удаляется только первое; если в треке 3 произведения, первые 2 будут удалены.
Похоже, что проблема заключается в изменении индексов обложки во время выполнения команды удаления (т. Е. Для дорожки с 2 обложками она успешно удаляет обложку 1, но при попытке удалить обложку 2 не может найти ее, потому что она была переименована к произведению 1, когда исходное произведение 1 было удалено). Пытаясь заставить every artwork
спецификатор в список (так что его можно изменить) не работает, так как delete
не похоже на работу с пользовательским списком.
Кто-нибудь знает, что я делаю не так? Я знаю, что мог бы использовать цикл повтора для перебора всех произведений в треке, так как удалял каждое из них по отдельности, но, похоже, это противоречит попытке простоты AppleScript. Я как-то неправильно использую every
заявление?
1 ответ
Пытаться:
tell application "iTunes"
set t to first item of (get selection)
delete t's artworks
end tell
ИЛИ ЖЕ
tell application "iTunes"
set t to first item of (get selection)
set tArtwork to t's artworks
repeat with i from (count tArtwork) to 1 by -1
delete tArtwork's item i
end repeat
end tell