Персональный блог Игоря Антонова aka "spider_net"

JavaScript для автоматизации OS X


Рубрика: Программирование -> JavaScript -> OS X
Метки: | | | | | |
Просмотров: 3621
JavaScript для автоматизации OS X

Вот за что я сразу полюбил OS X, так это за возможность тотальной автоматизации. Многие вещи легко настраиваются ручками, а рутинные действия автоматизируются при помощи встроенных инструментов. Главный инструмент для автоматизации - это Automator. Приложение имеет графический инструмент и совсем простые вещи реально сделать без единой строчки кода. Я вот с этой тулзой игрался несколько часов и до сих пор нахожусь в эйфории. Классный инструмент и жалко, что с Windows ничего подобного не поставляется.

Automator позволяет творить чудеса, но надо понимать, что без кода все равно трудно обойтись. У Apple есть свой простой язык программирования под названием AppleScript и вот его можно использоваться в купе с Automator. Правда если опыта работы с этим языком не было, то начать не так-то просто. Язык больше похож на человеческий, чем на привычный программисту.

К счастью, в Yosimite появилась возможность использовать вместо AppleScript знакомый каждому web-разработчику JavaScript. Такая привилегия снижает порог вхождения и уже через пару часиков вполне реально написать полезный скрипт. Например, чтобы запустить почтовую программу по умолчанию и сформировать письмо всего надо накорябать:

myMailApp = Application("Mail");
bodyTxt = "Привет, мен! Это пример отправки письма с помощью JS из OS X.\n\n"
			+ "Все предельно просто и понятно.";
			
newMessage = myMailApp.OutgoingMessage().make();
newMessage.visible = true;
newMessage.content = bodyTxt;
newMessage.subject = "Письмо счастья";
newMessage.visible = true;
newMessage.toRecipients.push(myMailApp.Recipient({address: "a@iantonov.me", name: "Igor Antonov"}));
newMessage.toRecipients.push(myMailApp.Recipient({address: "info@iantonov.me", name: "bot"}));
newMessage.attachments.push(myMailApp.Attachment({ fileName: "/Users/spider_net/Downloads/\[rutracker.org\].t4878348.torrent"}));
myMailApp.outgoingMessages.push(newMessage);
myMailApp.activate();
Оставьте комментарий!
comments powered by HyperComments