Во-первых, это моя первая попытка использовать applescript, так что наберитесь терпения :)
Чего я пытаюсь достичь: я использую Dropbox для хранения изображений в Интернете. Я почти использовал все доступное пространство, но сегодня я понял, что с помощью простой оптимизации без потерь на jpg я могу сэкономить до 35-40% места (я оптимизировал все с помощью приложения). Итак, моя идея здесь такова: поскольку Dropbox на моем Mac работает в фоновом режиме каждый раз, и если я добавлю что-то (или загружу камеру с телефона), изображение в конечном итоге попадет в папку на моем Mac, так что, возможно, я могу отслеживать эту папку, оптимизировать изображение автоматически, и оно загружается снова, потому что, что касается DP, изображение отличается, и я получу автоматически оптимизированные изображения.
Пройденные шаги:
Найдите CLI для оптимизации изображений ✔️
Создайте сервис на основе папки, который запускается каждый раз, когда в папке что-то меняется ✔️
Оптимизируйте изображения ✔️
Показать уведомление после завершения ✔️
Скрипт автомата выглядит так (пока прикреплен к тестовой папке):
on run {input, parameters}
tell application "Terminal"
activate
do script with command "imageoptim --directory /Users/Nick/Desktop/untitled"
end tell
end run
и это на самом деле работает, ну, более или менее.
Я хотел бы улучшить это, поскольку я не на 100% доволен тем, как это работает.
На данный момент, если я добавляю/переименовываю картинку, открывается окно терминала (иногда 2 окна терминала), выполняется команда и все. Он никогда не закрывается, а также уведомление срабатывает, как только открывается окно терминала, а не после завершения оптимизации.
Что бы я хотел улучшить:
Прежде всего, я не хочу, чтобы окно терминала открывалось. В идеале вообще ничего не должно открываться. Он должен просто выполнить оптимизацию и все.
В уведомлении должно отображаться какое-то полезное сообщение, и оно должно открываться только после сжатия (в основном, как обратный вызов из скрипта), но я не знаю, как дождаться обратного вызова.
В идеале уведомление должно показывать предыдущий размер и новый размер. Я искал способ получить размер папки, но в автоматизаторе не было ничего, что я мог бы использовать. Моя идея состояла в том, чтобы получить предыдущий размер папки и добавить его в переменную, запустить все, получить новый размер папки, другую переменную и распечатать переменные в виде уведомления, но я не знаю, как я уже сказал, как получить размер папки.
Можете ли вы помочь мне или даже указать мне некоторые полезные ресурсы? Из (даже лучше) что-то подобное уже существует, и я просто пытаюсь изобрести велосипед, пожалуйста, дайте мне знать :)
заранее спасибо
ИЗМЕНИТЬ
Я нашел это: https://www.alfredforum.com/topic/3703-imageoptim-workflow/ и делает почти все, что я хочу. Можно ли перейти от Alfred wordkflow к чистому автоматическому рабочему процессу?
do shell script
вместо того, чтобы активировать Терминал. - person Mark Setchell   schedule 29.06.2017