Быстрые команды и AppleScript

JPGBoost интегрируется с нативными инструментами автоматизации macOS. Доступно нативное действие в Быстрых командах и Spotlight, а также команда compress, доступная в AppleScript и Automator.

Входит во Free

Эта функция доступна как в JPGBoost Free, так и в Pro. Во Free каждое обработанное изображение учитывается в дневном лимите: 50 изображений в день и 5 МБ на файл. JPGBoost Pro снимает оба ограничения.

Два способа автоматизации

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

  • App Intents для приложения Быстрые команды и Spotlight.
  • AppleScript для osascript, Редактора скриптов и Automator.

Приложению не обязательно быть открытым

Это основное отличие от локального API и отслеживаемых папок, которые оба требуют, чтобы приложение уже было запущено.

Будь то через действие Быстрых команд или команду AppleScript compress, macOS автоматически открывает JPGBoost заново, как только поступает запрос, как и любое другое приложение с поддержкой скриптов. Вам ничего не нужно делать, даже если вы явно закрыли приложение ранее.

Чего ожидать

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

Действие «Сжать изображения»

Действие автоматически появляется в приложении Быстрые команды, в категории JPGBoost, как только приложение было открыто хотя бы раз. Никакой настройки не требуется.

  1. Откройте приложение Быстрые команды и создайте команду.
  2. Добавьте действие, предоставляющее файлы, например Выбрать файлы или Получить содержимое папки.
  3. Добавьте действие Сжать изображения от JPGBoost.
  4. Заполните нужные вам параметры. Оставленные пустыми могут быть дополнены профилем экспорта.
  5. При необходимости добавьте ещё одно действие после: действие возвращает сжатые файлы.
ПараметрФункцияОбязателен
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, без необходимости открывать приложение Быстрые команды.

Такой прямой вызов передаёт только выбранные файлы. Никакой другой параметр не указывается, поэтому возникает ошибка «Не указана папка назначения», пока не выполнена настройка ниже.

Чтобы этот вызов сработал:

  1. В JPGBoost откройте Настройки → Профили и сделайте один профиль профилем по умолчанию, с настроенной папкой назначения.
  2. В Finder выберите изображения для сжатия.
  3. Нажмите ⌘Пробел, затем введите «Сжать изображения».

JPGBoost затем автоматически заполняет недостающие параметры из профиля по умолчанию, включая папку назначения, формат и качество.

Создавать команду в приложении Быстрые команды не нужно.

Случай 2: с созданной командой

Этот случай полезен, когда несколько сценариев должны быть доступны под разными именами. Например, «Сжать на Рабочий стол» может использовать один профиль, тогда как «Сжать в Архив» использует другой. Профиль по умолчанию из случая 1 позволяет обрабатывать только один сценарий за раз.

  1. В JPGBoost откройте Настройки → Профили и создайте профиль с папкой назначения, выбранной с помощью нативного селектора приложения.
  2. В приложении Быстрые команды создайте новую команду и дайте ей понятное имя, например «Сжать на Рабочий стол».
  3. В действии JPGBoost этой команды заполните только поле Export Profile именем нужного профиля. Оставьте поле Destination Folder пустым: папка, указанная в профиле, будет использована автоматически.
  4. Команда становится доступна напрямую в 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