Как я могу адаптировать этот код для удаления музыки из определенного плейлиста Itunes - PullRequest
0 голосов
/ 27 августа 2018
tell application "iTunes"
    repeat with t in (get file tracks of library playlist 1)
        if location of t is missing value then delete t

    end repeat


end tell

Здравствуйте, уважаемое сообщество,

Кто-нибудь знает, как я могу адаптировать этот код выше, чтобы удалить дорожку из данного списка воспроизведения. Но не в том случае, когда он удаляется с жесткого диска (как сейчас, с «отсутствующим значением»), а в том, что он будет удален, если местоположение файла изменяется на жестком диске. Я думал о какой-то команде типа «изменил значение» для местоположения t, но, к сожалению, не сработало.

Надеюсь, я достаточно ясно дал понять. Если нет, я мог бы попробовать лучше:)

Спасибо за помощь

1 Ответ

0 голосов
/ 15 декабря 2018

Если вы хотите удалить элементы списка воспроизведения, файлы которых были перемещены в другой каталог с определенной даты, вы можете сделать что-то вроде этого:

tell application "iTunes"
    repeat with t in (get tracks of playlist "playlist name")
        do shell script "mdls -rnkMDItemDateAdded " & quoted form of (POSIX path of (get location of t)) & "|cut -d' ' -f1"
        if result > "2018-01-01" then delete t
    end repeat
end tell

Приведенный выше скрипт удаляет только каждую дорожку из указанного списка воспроизведения, а не из всей библиотеки iTunes.

«Дата добавления» - это дата последнего перемещения или первой индексации файла, поэтому приведенный выше скрипт также применяется к файлам, которые были созданы или впервые проиндексированы Spotlight после указанной даты. mdimport -A (в котором перечислены все атрибуты метаданных) описывает kMDItemDateAdded как Date when this item was last moved:

$ mdimport -A|grep added
'kMDItemDateAdded'      'Date added'        'Date when this item was last moved'        'dateadded, added, date'

Если вы хотите удалить элементы плейлиста, чьи файлы не находятся в указанном каталоге, вы можете использовать такой скрипт:

tell application "iTunes"
    repeat with t in (get tracks of playlist "playlist name")
        location of t
        tell application "Finder" to POSIX path of (folder of file result as alias)
        if result is not "/Users/username/folder" then delete t
    end repeat
end tell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...