W60 01005
AppleScript: инструкция по применению
AppleScript — это язык программирования, встроенный в Mac OS и разработанный компанией Apple для повседневного использования.
W440x0 01007

Mac OS постоянно преподносит нам новые сюрпризы. Но уверены ли мы, что в курсе всех, преподнесенных ранее? Например, AppleScript. Знаем ли мы, что это такое, как работает и какую пользу в себе несет?

Что такое AppleScript?

AppleScript — это язык программирования, встроенный в Mac OS и разработанный компанией Apple. Особенность его состоит в том, что он написан не для суровых бородатых программистов, которые, обложившись чипсами и пивом со всех сторон, ночи напролет ваяют для нас программы, приложения, сайты, а для обычного пользователя — для повседневного использования «чайниками» в быту. Не сочтите последнее высказывание обидным — это не камешек в ваш огород, а завуалированная похвала разработчикам Apple. Потому что идея-то гениальная: разработать несложный язык, ориентированный на конечного пользователя и позволяющий решать интересные злободневные задачи.

Неизвестно, кого именно эта идея посетила первым, зато известна примерная дата ее появления: первые подвижки в идее разработки «движка» произошли в конце восьмидесятых годов прошлого века, когда Apple работала над проектом HyperCard (одна из первых мультимедийных систем), содержащим в себе специальный язык для редактирования данных и пользовательского интерфейса (HyperTalk). Именно тогда зародилась идея о создании похожего языка, но применимого для любого приложения Apple.

Идея приобрела реальные очертания в 1993 году, когда AppleScript появился в составе System 7. С тех пор язык пребывает с нами, претерпев лишь несколько изменений.

Для чего нужен

AppleScript разработан для использования конечным пользователем, очень прост и не требует глубоких познаний в области программирования. Суть его состоит в том, что он позволяет запускать различные процессы, контролировать приложения, получать доступ к информации и изменять ее с минимальной возможностью получения ошибок.

Интересной характеристикой языка можно назвать его способность обращаться к нескольким приложениям одновременно и проводить данные и команды между ними. Например, AppleScript может открыть фото в приложении для редактирования изображений, уменьшить его размер, экспортировать копию и выгрузить ее в интернет, используя FTP-клиент. То есть задачи, решаемые с помощью встроенного языка, очень разнообразны.

Как работает

В начале этого параграфа стоит оговориться, что автор обзора не ставит своей задачей научить вас работе с AppleScript (научиться вы сможете сами, например, используя специальную литературу, которой в Интернете очень много). Наша цель: познакомить вас с ним.

Освоить основы этого простого языка не составит труда. Hаписание и редактирование скриптов, а также их запуск производятся с помощью программы ScriptEditor. Компьютер считывает команды, заданные скриптами, написанными на AppleScript, а затем передает их целевым приложениям.

Язык не использует сложных функций с множеством аргументов, таинственных переменных, которые нужно определять и задавать каждый раз, и путаного синтаксиса, испещренного обилием страшных знаков — в основе обыкновенный английский язык, правда, оптимизированный для успешного понимания компьютером. Большинство команд задаются простыми английскими глаголами в виде инфинитива без частицы «to», например: «print», «tell», «quit». Для обозначения объекта действия используются существительные, как, например, «page», «document», «file». Таким образом, команда «покинуть приложение» будет выглядеть как

quit application

Помимо этого в скриптах очень часто используется конструкция «дать команду чему-то сделать что-либо», например:

Tell application Finder to close Finder window «Macintosh HD»

Проследить путь до какого-то определенного файла, можно, используя английский предлог принадлежности «of», например:

Folder «Anna» of folder «Users»

Если для выполнения того или иного действия должно быть верным какое-либо условие, то тут, как и в некоторых других языках программирования, используется условный оператор «if»

if (width of thisPhoto = width of lastPhoto) and (height of thisPhoto = height of lastPhoto)
then
                set comment of thisPhoto to "DUPLICATE"

Для остальных случаев, в которых условие не выполняется, используется оператор «else». Завершается выполнение любого действия командой «end».

end tell

Пример полезного применения

По большому счету, такое мощное «оружие», как AppleScript, используется довольно редко, так как находится в тени приложений, способных решать задачи, сходные с задачами, выполняемыми с помощью различных скриптов. Но все же иногда «темный рыцарь» Mac OS становится превосходным помощником. Ниже приведем пример готового скрипта, который может оказаться полезным, с поэтапным разъяснением, что к чему. Скрипт, описываемый нами, позволяет выполнять следующие действия: все файлы, помещенные в определенную папку, автоматически отправляются по электронной почте на указанный в скрипте адрес с названием файла в теме письма, отосланный файл остается в нужной папке.

property recipientAddress: "your-address@xxxx.ru" -- определяем адрес получателя письма (укажите нужный адрес);

on adding folder items to thisFolder after receiving theItems -- при добавлении файлов в эту папку, после получения поместить их в массив theItems;

repeat with oneItem in theItems -- повторить с каждым элементом theItems;

set {name:fileName} to info for oneItem -- присвоить переменной fileName значение элемента name массива info переменной oneItem;

tell application "Mail" -- сообщить приложению Mail;

set newMessage to make new outgoing message with properties {subject:fileName & " (вложение)"} -- присвоить переменной newMessage значение "make new outgoing message with properties {subject:fileName & " (вложение)"}", что означает «создать новое сообщение с темой, содержащей имя файла и строкой "вложение"»;

tell newMessage -- сообщить переменной newMesage;

make new to recipient with properties {address:recipientAddress} -- создать нового получателя;
tell content to make new attachment with properties {file name:oneItem} -- создать новое вложение;

end tell

send newMessage -- отправить сформированное сообщение.

end tell

end repeat

end adding folder items to

«--» — это один из знаков комментария в AppleScript: информация после двух минусов в строке не воспринимается компьютером как часть кода.

Папка, откуда будут «улетать» помещенные туда письма, настраивается путем привязки к ней скрипта. Для этого нужно: выбрать папку, нажать на нее правой кнопкой мыши, перейти в пункт меню «Hастроить действия папки» и среди сценариев выбрать этот скрипт.

Видите, все не так сложно. Единственное, что требуется от человека, желающего свободно оперировать AppleScript, это аналитический склад ума, умение логически мыслить и придумывать алгоритмы действий. Для познания самого языка нужно всего лишь учить английский и читать соответствующую литературу, например, здесь или здесь.

Automator

Впрочем, если учить совсем ничего не хочется, а проверить AppleScript в действии интересно, можно воспользоваться программой Automator (приложение, разработанное Apple для автоматического создания скриптов по принципу «drag-and-drop»). Automator не требует знания AppleScript, принцип его работы достаточно прост: программа содержит большой набор действий (поиск файлов, работа с ними, работа с электронной почтой и другими приложениями и т.д.). Выбирая определенное действие, можно запускать нужные процессы.

Примечание. Так как AppleScript — бесплатный проект, мы не нарушаем ничьих прав, используя какие-либо скрипты, находящиеся в свободном доступе, если, конечно, источник не указал обратного. Готовые скрипты могут быть представлены либо в виде текста, который нужно скопировать и запустить в ScriptEditor, либо в виде applet — приложения, при запуске которого запускаются и скрипты.

комментировать Комментарии 0

Будьте первыми, кто прокомментирует эту статью!

Ваш комментарий
Авторизуйтесь чтобы можно было оставлять комментарии.