2015-07-04 3 views
0

Я пытаюсь создать applescript для сортировки тегов в поле Genre музыкального файла в iTunes.Сортировка строки по значениям в текстовом файле с использованием applescript

Я использую список разделов с запятой для поля «Жанр», например: Rock; Art Rock; Вокалисток

Строка Я хочу, чтобы отсортировать назван genreList в моем сценарии:

{"Art Rock", "Female Vocalists", "Rock"} 

Мой предпочтительный порядок тег указан как список сортировки:

{"Rock", "Dance", "Art Rock", "New Wave", "Female Vocalists", "Male Vocalists"} 

Я хочу, чтобы элементы в genreList к сортировать в зависимости от видаList, например:

{"Rock", "Art Rock", "Female Vocalists"} 

Как сделать t первый список, используя второй список? Я искал здесь и в Google, но, поскольку я начинающий сценарий, я даже не уверен, что ищу подходящие условия.

ответ

0

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

Если разделитель должен быть точкой с запятой + пробелом, пожалуйста, измените вторую строку свойств.

Если свойство genre не содержит разделителя, ничего не будет изменено.

Если жанр не соответствует элементам в отсортированном списке, он будет добавлен в конце.

property sortedGenreList : {"Rock", "Dance", "Art Rock", "New Wave", "Female Vocalists", "Male Vocalists"} 
property separator : ";" 

tell application "iTunes" to set selectedItems to (get selection) 
if selectedItems is {} then 
    display dialog "Nothing selected" buttons {"Cancel"} default button 1 
end if 

set {TID, text item delimiters} to {text item delimiters, separator} 
repeat with aTrack in selectedItems 
    set orderedGenreList to {} 
    set nonOrderableGenres to {} 
    tell application "iTunes" to set trackGenreList to text items of (get genre of aTrack) 
    if (count trackGenreList) > 1 then 
     repeat with aGenre in trackGenreList 
      if sortedGenreList does not contain aGenre then set end of nonOrderableGenres to contents of aGenre 
     end repeat 
     repeat with aGenre in sortedGenreList 
      if trackGenreList contains aGenre then 
       set end of orderedGenreList to contents of aGenre 
      end if 
     end repeat 
     set orderedGenres to (orderedGenreList & nonOrderableGenres) as text 
     tell application "iTunes" to set genre of aTrack to orderedGenres 
    end if 
end repeat 
set text item delimiters to TID 

Если вы хотите использовать текстовый файл с жанром в каждой строке заменить первую строку свойства с

set sortedGenreList to paragraphs of (read (choose file))