automator_nowm

В предыдущей статье нашего нового цикла «Уроки Automator» мы рассказали об основах использования этой замечательной, но не слишком известной среди рядовых маководов утилиты. Мы по шагам создали своё первое приложение, которое позволило нам автоматизировать простой, но вполне реальный набор повседневных действий. Сегодня предлагаем вам продвинуться на шаг дальше. Во второй статье цикла мы поговорим о применении переменных.

Термин «переменная» в Automator, как и много где ещё, используется для того, чтобы обозначить некоторую величину, которая многократно используется в приложении. Посредством переменных Automator и создаваемые в нём макросы будут получать необходимую для работы информацию извне, а также выводить требуемую пользователю информацию при необходимости.

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

Для начала запустим Automator. Далее выберем создание новой программы. Для упрощения задачи пока предположим, что нам нужно явно указать набор файлов.

Снимок экрана 2013-04-23 в 23.41.34

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

Кстати, на этом скриншоте хорошо виден Журнал. Он поможет нам получать сообщения об ошибках в нашей программе, если таковые имеются. У нас есть возможность на каждом этапе отлаживать нашу программу, используя кнопку «Запустить»:

Снимок экрана 2013-04-23 в 23.41.48

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

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

Снимок экрана 2013-04-23 в 23.45.26

Аналогично поступаем и с переменной для изображений. Мы всегда можем почитать описание к нашим объектам, оно достаточно подробное и не позволит запутаться и выбрать что-то неподходящее.

Снимок экрана 2013-04-23 в 23.47.02

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

Снимок экрана 2013-04-23 в 23.45.43

Теперь вместо Рабочего стола будет подставлено наше значение, представляющее собой путь к нашей папке и изображениями. Теоретически, можно использовать и свои переменные, позволяя задавать произвольную стартовую локацию и ссылаться на неё во всей программе, не указывая её явно каждый раз, а подставляя мышкой переменную туда, где она нужна.

Далее перетаскиваем в наше приложение компоненты для копирования – «Скопировать объекты Finder»:

Снимок экрана 2013-04-23 в 23.52.49

Затем перетаскиваем компонент, предназначенный для упорядочивания файлов («Переименовать объекты Finder»). Настраиваем их так, как нам нужно, заполняя поля в соответствии со скриншотом. Перетягиваем переменные по своим местам. Для создания новой переменной мы можем при выборе пути кликнуть пункт «Новая переменная», а появившемся окне выбрать необходимый путь и придумать ей название.

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

Снимок экрана 2013-04-24 в 0.25.29

Он выбирается в нашем крайнем компоненте для того, чтобы результаты предыдущего действия (файлы), не отправились по почте в качестве вложения. Ведь наша цель — просто известить человека о том, что файлы были разложены по общей папке в Dropbox.

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

После написания такого приложения можно приступить к его модификации, экспериментируя с различными компонентами и строя различной длины цепочки. Предлагаем вам заняться этим в качестве домашнего задания ;)

Поделитесь страницей через социальные сети

  • http://appstudio.org AppStudio

    [quote=»nervasystem, post: 22104″]Что-то не нашлось у меня а automator «Сделать последовательным». Урок ниасилил :)[/quote]
    ищите действие «Переименовать объекты Finder»

  • TATAPNH

    задача: при подключении внешнего диска, (запустить Forklift?) и скопировать новые файлы из одной папки, каждый в свою папку на внешнем диске.
    застрял на первом пункте. ггг

  • http://appstudio.org AppStudio

    [quote=»TATAPNH, post: 22127″]задача: при подключении внешнего диска, (запустить Forklift?) и скопировать новые файлы из одной папки, каждый в свою папку на внешнем диске.
    застрял на первом пункте. ггг[/quote]
    вы хотите, чтобы Automator отслеживал подключение по USB?

  • SDmitry

    [quote=»TATAPNH, post: 22193″]для начала — да[/quote]
    http://www.symonds.id.au/marcopolo/ — вот утилита, которая умеет это делать. Вы сможете запустить любой скрипт, дёргающий ваше Automator-решение.

    Обратите свой взор на bash. Он Вам пригодится в решении такого рода задач.

  • http://appstudio.org AppStudio

    [quote=»SDmitry, post: 22196″][quote=»TATAPNH, post: 22193″]для начала — да[/quote]
    http://www.symonds.id.au/marcopolo/ — вот утилита, которая умеет это делать. Вы сможете запустить любой скрипт, дёргающий ваше Automator-решение.

    Обратите свой взор на bash. Он Вам пригодится в решении такого рода задач.[/quote]
    ну это уже будет к финалу нашего цикла про автоматор. там повествование плавно будет перетекать в цикл про терминал)

  • Vitaliy

    А у меня такой вопрос, наверное, не в тему: можно ли создать дроплет, который бы показывал общий размер скинутых на него файлов? В винде такую инфу получить легко, нужно выделить все файлы и нажать контрол-энтер, покажется суммарная информация. На Маке же выдаст стопицот окон, по одному для каждого файла, потом мучайся закрывай их…

  • TATAPNH

    [quote=»TATAPNH, post: 22127″]задача: при подключении внешнего диска, (запустить Forklift?) и скопировать новые файлы из одной папки, каждый в свою папку на внешнем диске.
    застрял на первом пункте. ггг[/quote]
    фух. осилил. жизнь стала чуть «скучнее» :D