Я написал AppleScript, который получает текст от Genius и добавляет его к моим песням iTunes.
По сути, есть цикл, который просматривает мои песни, которые были недавно добавлены в iTunes, для каждой песни, а затемидет к гению и пытается найти эту песню, если она не может найти песню, то song_name
и song_artist
помещаются в переменную с именем songNotAva
.То, как это помещено в переменную: set songNotAva to songNotAva & {"- ", song_name, " - ", song_artist & return}
.И затем, когда цикл «получить все тексты песен» завершен, если songNotAva
не пусто, он выполняет следующий код:
if songNotAva is not equal to {} then
do shell script "> $HOME/Desktop/songs.txt"
do shell script "echo " & songNotAva & ">> $HOME/Desktop/songs.txt"
end if
, который выводит неудавшиеся песни в текстовый файл сэтот формат:
- song_name - song_artist
- song_name - song_artist
- song_name - song_artist
(song_name
и song_artist
будут отражать песню, которая потерпела неудачу)
Она прекрасно работает и выдает именно то, что я ожидаю, но проблемав том, что некоторые из названий песен в iTunes содержат скобки (), и если вы попытаетесь вывести эти скобки с помощью оболочки, это приведет к ошибке и ничего не выведет (если у вас нет обратной косой черты перед скобками вроде \\(\\) тогда он будет работать нормально)
так что все песни, которые не могут быть найдены, сохраняются в списке songNotAva
и позже распечатываются в текстовый файл после завершения цикла.
Мой вопрос: как я могу проверить, содержит ли song_title какие-либо скобки, и если да, то как я могу добавить обратную косую черту перед скобками?