Уроки Automator. Часть 3: Создание службы конвертирования видео

automator_nowm

Продолжая цикл статей о стандартной утилите Automator, входящей в стандартный комплект поставки операционной системы Mac OS X, хотелось бы рассказать о возможности создавать службы. Сегодня мы расскажем о создании простого автоматизатора, который мог бы быть полезен и доработан каждым до нужного состояния. О том, как строить подобные вещи мы рассказывали в предыдущих статьях. А сегодня мы подробнее остановимся на компонентах для запуска пользовательского сценария AppleScript и работы со службами.

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

Для создания своей первой службы запустим Automator. Отличием тут будет тот факт, что в начале работы мы выберем «Службу»:

Снимок экрана 2013-07-08 в 11.52.05

Далее хотим обратить внимание на одну деталь:

Снимок экрана 2013-07-08 в 12.54.08

Это важно: нужно отметить, что служба наша получит файлы и папки. Это позволит нам вызывать её правой кнопкой по файлу с видео. Выполним это действие сразу, чтобы не забыть, хотя можно проделать эту процедуру и потом.

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

Снимок экрана 2013-07-08 в 11.52.49

Здесь мы можем изменить параметры нашего выходного файла. Можем увеличить качество видео, можем сменить директорию, в которую попадёт выходной файл. Для iPhone качество можно поставить и выше. Путь полученного видео можем сменить на нужный нам.

В принципе, на этом можно было бы остановиться, но мы продвинемся на шаг дальше и добавим новое действие — блок AppleScript. Вообще, AppleScript – специальный язык сценариев, предназначенный для неограниченной автоматизации процессов в Mac OS X. Automator – всего лишь удобная графическая оболочка для него, поэтому в тех случаях, когда Automator с чем-либо не справляется, имеет смысл прибегнуть к «чистому» AppleScript. Но AppleScript не прост в изучении, он содержит десятки операторов и отличается особым синтаксисом. Загружать вас информацией об AppleScript уже в начале нашего цикла об Automator было бы недальновидно, поэтому мы отложим предметный разговор о нём на потом.

Сегодня мы посмотрим лишь на один конкретный пример – применение AppleScript для вывода на экран всплывающего диалогового окошка. Переместим в рабочее пространство Automator новый для нас компонент под названием «Запустить AppleScript»:

Снимок экрана 2013-07-08 в 11.54.38

Стандартное содержание его показано выше. В этой заготовке даже заботливо указано место, куда нам предстоит писать свой код. Он будет небольшим для начала. После стандартного оператора on run, показывающего, что код под ним должен выполняться лишь тогда, когда его вызовут, мы добавим следующую строчку:

display dialog «Конвертация завершена: » & input buttons «OK» default button «OK»

При знании английского можно легко разобраться в том, что происходит (вообще, это одна из полезных особенностей языка AppleScript). Мы указываем, что нужно отобразить диалоговое окно (display dialog) с указанным текстом и одной кнопкой «ОК», которая по умолчанию должна быть активной. Заодно мы говорим о том, что текст будет состоять из сообщения и названия того файла, с которым мы работаем. Оно придёт к нам сверху.

Остальное трогать мы не станем. Итоговый код будет выглядеть следующим образом:

Снимок экрана 2013-07-08 в 12.32.15

После нажатия на кнопку компиляции Automator подсветит нам синтаксис языка. Кстати, это будет хорошим индикатором правильности введённого текста. Иначе подсветка не будет осуществлена или будет неполной, и это всё помимо ошибки. Таким образом мы можем не волноваться за то, что неправильный код будет запущен.

Теперь сохраним результаты нашего труда:

Снимок экрана 2013-07-08 в 12.34.24

Никаких директорий тут выбирать не нужно, только укажем имя службы.

Снимок экрана 2013-07-08 в 12.50.50

В Finder’е мы можем открыть настройки и найти там нашу службу. Можем задать ей клавиатурное сокращение, можем выключить её или посмотреть в директорию, где она лежит. У нас всегда остаётся возможность открыть её в Automator снова и поправить в ней некоторые детали, или просто удалить её.

Снимок экрана 2013-07-08 в 12.37.10

Снимок экрана 2013-07-08 в 12.38.30

Теперь мы можем проверить, как же работает наш проект. Для этого находим у себя какой-нибудь файл с видео, щёлкаем правой кнопкой и выбираем нашу службу:

Снимок экрана 2013-07-08 в 12.40.29

После того, как файл будет сконвертирован, мы увидим наш диалог:

Снимок экрана 2013-07-08 в 12.41.32

Кстати, по ходу выполнения мы можем отслеживать прогресс, щёлкая на значок. В данном случае мы видим, что задача преобразования файла была завершена и сейчас открыт диалог, который содержит в себе название файла и путь. Просто закроем диалог, после чего посмотрим в выходную директорию.

Сразу хотим сказать, что приведённый выше способ вывода информации о состоянии немного некрасив. Было бы логичнее воспользоваться Уведомлениями, поместив сообщение в Центр Уведомлений. Однако код, который проделывал такую процедуру, не слишком прост для новичков.

Таким образом, в этой статье мы рассмотрели основы интеграции AppleScript с Automator и создание простой службы. Далее мы продолжим изучать базовые возможности Automator.