Быстрые команды и AppleScript
JPGBoost интегрируется с нативными инструментами автоматизации macOS. Доступно нативное действие в Быстрых командах и Spotlight, а также команда compress, доступная в AppleScript и Automator.
Эта функция доступна как в JPGBoost Free, так и в Pro. Во Free каждое обработанное изображение учитывается в дневном лимите: 50 изображений в день и 5 МБ на файл. JPGBoost Pro снимает оба ограничения.
Два способа автоматизации
JPGBoost предоставляет два нативных интерфейса автоматизации macOS. Оба работают как независимая обработка: они получают файлы и настройки в качестве входных данных, возвращают сжатые файлы в качестве выходных данных и не зависят от списка, открытого в данный момент в окне приложения.
- App Intents для приложения Быстрые команды и Spotlight.
- AppleScript для
osascript, Редактора скриптов и Automator.
Приложению не обязательно быть открытым
Это основное отличие от локального API и отслеживаемых папок, которые оба требуют, чтобы приложение уже было запущено.
Будь то через действие Быстрых команд или команду AppleScript compress, macOS автоматически открывает JPGBoost заново, как только поступает запрос, как и любое другое приложение с поддержкой скриптов. Вам ничего не нужно делать, даже если вы явно закрыли приложение ранее.
Единственный видимый эффект — это небольшая задержка, время, необходимое для открытия, если приложение ещё не было открыто. После завершения обработки оно остаётся открытым: macOS не закрывает его автоматически.
Действие «Сжать изображения»
Действие автоматически появляется в приложении Быстрые команды, в категории JPGBoost, как только приложение было открыто хотя бы раз. Никакой настройки не требуется.
- Откройте приложение Быстрые команды и создайте команду.
- Добавьте действие, предоставляющее файлы, например Выбрать файлы или Получить содержимое папки.
- Добавьте действие Сжать изображения от JPGBoost.
- Заполните нужные вам параметры. Оставленные пустыми могут быть дополнены профилем экспорта.
- При необходимости добавьте ещё одно действие после: действие возвращает сжатые файлы.
| Параметр | Функция | Обязателен |
|---|---|---|
| Input Files | Изображения для сжатия | Да |
| Output Format | Желаемый выходной формат | Нет |
| Quality | Качество от 1 до 100 | Нет |
| Export Profile | Имя существующего профиля экспорта | Нет |
| Destination Folder | Выходная папка (см. примечание ниже) | Нет |
Поле «Destination Folder»
Это самый частый источник путаницы. Поле Destination Folder трудно правильно заполнить из редактора Быстрых команд. Надёжное решение — использовать профиль экспорта.
Это поле ожидает настоящую ссылку на папку в формате URL, то есть путь, начинающийся с file:// (например, file:///Users/я/Downloads/), а не обычный текст. Следующие методы не сработают с ошибкой Invalid URL:
- ввод пути вручную, например
/Users/я/Downloads; - перетаскивание папки из Finder в поле, что просто помещает туда обычный текст.
Редактор Быстрых команд macOS также не предлагает нативного действия типа «Выбрать папку», которое позволило бы построить его иначе. Хорошая новость в том, что вручную созданная команда вовсе не обязательна. Всё зависит от того, что вы хотите запустить.
Случай 1: без создания команды
Как только JPGBoost была запущена хотя бы раз, общая фраза, которую она сама объявляет («Сжать изображения с помощью JPGBoost», «Сжать с помощью JPGBoost»), распознаётся напрямую Spotlight, без необходимости открывать приложение Быстрые команды.
Такой прямой вызов передаёт только выбранные файлы. Никакой другой параметр не указывается, поэтому возникает ошибка «Не указана папка назначения», пока не выполнена настройка ниже.
Чтобы этот вызов сработал:
- В JPGBoost откройте Настройки → Профили и сделайте один профиль профилем по умолчанию, с настроенной папкой назначения.
- В Finder выберите изображения для сжатия.
- Нажмите
⌘Пробел, затем введите «Сжать изображения».
JPGBoost затем автоматически заполняет недостающие параметры из профиля по умолчанию, включая папку назначения, формат и качество.
Создавать команду в приложении Быстрые команды не нужно.
Случай 2: с созданной командой
Этот случай полезен, когда несколько сценариев должны быть доступны под разными именами. Например, «Сжать на Рабочий стол» может использовать один профиль, тогда как «Сжать в Архив» использует другой. Профиль по умолчанию из случая 1 позволяет обрабатывать только один сценарий за раз.
- В JPGBoost откройте Настройки → Профили и создайте профиль с папкой назначения, выбранной с помощью нативного селектора приложения.
- В приложении Быстрые команды создайте новую команду и дайте ей понятное имя, например «Сжать на Рабочий стол».
- В действии JPGBoost этой команды заполните только поле Export Profile именем нужного профиля. Оставьте поле Destination Folder пустым: папка, указанная в профиле, будет использована автоматически.
- Команда становится доступна напрямую в Spotlight под именем, которое вы ей дали, вместо общей фразы, объявляемой JPGBoost.
Spotlight
Действие также доступно через Spotlight. Фразы активации, вроде «Сжать изображения с помощью JPGBoost», переведены на пятнадцать поддерживаемых языков.
Название действия, его описание, параметры и сообщения об ошибках следуют языку инструмента, который их отображает (Быстрые команды или Spotlight), независимо от языка, выбранного для самого окна JPGBoost.
AppleScript
Команда compress используется так же, как в любом другом приложении с поддержкой скриптов.
tell application "JPGBoost"
compress {"/путь/к/изображению1.png", "/путь/к/изображению2.jpg"} ¬
to "/путь/к/выводу" format "webp" quality 80
end tell
Параметры to, format и quality опциональны. Параметр profile может их заменить или дополнить то, что они не покрывают, точно так же, как --profile в командной строке.
tell application "JPGBoost"
compress {"/путь/к/изображению.png"} profile "Web JPEG"
end tell
Команда возвращает строку JSON: объект на файл, с полями path, originalSizeBytes, compressedSizeBytes, ratio, destination и error. Это та же форма, что и вывод --json CLI и ответы локального API.
Из Терминала
osascript -e 'tell application "JPGBoost" to compress {"/путь/изображение.png"} profile "Web JPEG"'
Из Automator
Используйте действие Выполнить сценарий AppleScript и вставьте туда тот же блок tell. Так вы можете создать сервис, доступный из контекстного меню Finder.
Разрешение «Автоматизация»
В первый раз macOS показывает своё обычное уведомление о разрешении «Автоматизация»: приложение, отправляющее команду (Редактор скриптов, Automator или Быстрые команды), хочет управлять JPGBoost. Нажмите Разрешить. Это разрешение запрашивается только один раз.
Решение проблем
| Симптом | Причина | Решение |
|---|---|---|
| Invalid URL в папке назначения | Поле получило текст вместо ссылки на папку | Используйте профиль экспорта с папкой назначения и оставьте поле пустым |
| Действие не появляется в приложении Быстрые команды | Приложение никогда не открывалось | Откройте JPGBoost один раз и снова откройте Быстрые команды |
| Действие завершается сообщением о лимите | Дневной лимит JPGBoost Free исчерпан (50 изображений) или файл больше 5 МБ | Дождитесь сброса в полночь или перейдите на JPGBoost Pro, чтобы снять оба ограничения |
| Команда AppleScript возвращает ошибку | В разрешении на автоматизацию отказано | Проверьте Системные настройки → Конфиденциальность и безопасность → Автоматизация. Отказ из-за лимита Free пакет не прерывает: он отмечается для каждого файла в возвращаемом JSON |