Лайфхакер
Лайфхакер
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Куда поехать на выходные
Опрос для читателей
Добрые новости
Стыдные вопросы
Есть мнение
Норм или стрём
Личный опыт
Объясняем за минуту
МакрадарТехнологии
3 февраля 2014

Automator: Извлечение иконки программы из App Store

Фото автора Alexander Zhurovich
Alexander Zhurovich

Automator: Извлечение иконки программы из App Store

Вместо искусственных примеров использования средств автоматизации на Маке, вот вам реальная программная служба, которой пользуются некоторые авторы «МакРадара», в частности, при подготовке картинок для обзоров приложений. Благодаря этой службе загрузка иконки любого приложения, доступного в App Store или Mac App Store, становится удобной и быстрой.

🥰 Опрос для дорогих читателей! Помогите нам стать лучше и поделитесь, что вы хотели бы изменить. В конце — бонус от наших иллюстраторов.

Для примера возьмем iOS-программу «Купи батон». Что раньше редакторы делали вручную… Сначала в браузере открывалась страница программы в App Store, и из адреса этой страницы копировался 9‑циферный идентификатор (у каждой программы он свой), который затем подставлялся в адрес http://itunes.apple.com/lookup?id=. Например, если адрес страницы «Купи батон» в App Store — https://itunes.apple.com/ru/app/id725418306 (код программы выделен жирным), то редактор посредством «копи-паста» загружает в окно браузера страницу http://itunes.apple.com/lookup?id=725418306.

Содержимое этой страницы — исчерпывающая информация о соответствующей программе как о товарной единице в App Store. Все данные представлены в виде структуры, основа которой — парные значения вида «ключ–значение». Если в тексте страницы найти «ключ» artworkUrl512, то за ним вы увидите его значение — длинный веб-адрес, по которому находится иконка нашей программы в максимальном разрешении. Остается только скопировать этот адрес, вставить его в адресную строку — и получить требуемую картинку.

Даже если сохранить весь этот порядок действий — зачем его выполнять вручную, если можно автоматизировать? Призовем на помощь Automator!

Сначала составим алгоритм

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

  1. Из адреса загруженной страницы App Store извлекаем и запоминаем идентификатор программы.
  2. Запускаем в браузере серверный сценарий itunes.apple.com/lookup, передаем ему код программы из шага 1, и запоминаем полученный поток текстовых данных.
  3. В полученном на шаге 2 потоке данных по ключу trackName ищем название программы и запоминаем его.
  4. В полученном на шаге 2 потоке данных по ключу artworkUrl512 ищем адрес иконки и запоминаем его.
  5. Берем адрес иконки, полученный на шаге 4, и по нему загружаем картинку на рабочий стол.
  6. Загруженный файл-картинку переименовываем по названию программы, полученному на шаге 3.
  7. …
  8. PROFIT.

Теперь строим службу

Приступим к сборке нашего алгоритма в «Автоматоре». Создайте новый процесс типа Служба, и в заголовке области создания программы выберите: в первом выпадающем списке значение <нет входных данных>, а во втором списке выберите программу Safari (увы, другие браузеры Automator поддерживает постольку-поскольку).

Пойдем четко по нашему алгоритму.

Шаг 1. Берем идентификатор программы и формируем адрес обращения к сценарию lookup

Из раздела Интернет в боковой области библиотеки «Автоматора» перетащите в основную область окна программы действие Получить текущую страницу из Safari. Настраивать это действие никак не нужно. Результат этого действия: веб-адрес текущей страницы в «Сафари» (предполагаем, что это страница App Store), который будет передан следующему действию.

Из раздела Утилиты добавьте действие Запустить shell-скрипт, обязательно выбрав в выпадающем списке Передать ввод: пункт как аргументы. Поскольку сценарий я составил на языке «Питон», в выпадающем списке Shell выбрал пункт /usr/bin/python. Этот простой код принимает от первого действия веб-адрес, из которого, с помощью механизма регулярных выражений (поиск фрагмента строки по заданному шаблону), извлекает фрагмент, состоящий исключительно из девяти цифр. Результат этого действия: девятизначный идентификатор приложения, который будет передан следующему действию.

Шаг 2. Получаем от сервера Apple данные о программе

Из раздела Интернет добавьте действие Получить текст из веб-страницы, выбрав в выпадающем списке Получить пункт Простой текст. Результат этого действия: текст, который сгенерирует сервер Apple и в котором мы будем искать имя программы и путь к иконке.

Полученный текст нам еще понадобится, и чтобы повторно не обращаться к серверу Apple, этот текст можно сохранить в переменную. Для этого из раздела Утилиты добавьте действие Установить значение переменной. В выпадающем списке Переменная выберите пункт Новая переменная — в появившемся синем окошке введите имя переменной lookup и нажмите кнопку Готово. Результат этого действия: полученный от предыдущего действия текст будет сохраняться в переменной lookup.

Разумеется, названия переменных вы можете задавать по собственному усмотрению — допускаются даже русские имена. Нужно только следить за тем, чтобы эти переменные правильно располагались в алгоритме службы.

Шаг 3. Ищем название программы

Предыдущее действие передает полученный ранее текстовый массив в исходном состоянии, поэтому мы сразу можем «прицепить» следующее действие — Запустить shell-скрипт из раздела Утилиты. Параметры этого действия такие же, как у аналогичного действия, второго сверху: /usr/bin/python в первом выпадающем списке и как аргументы — во втором. Сценарий в этом действии тоже использует механизм регулярных выражений, причем дважды: сначала находится ключ и значение (“trackName”:“Buy Me a Pie! — Grocery Shopping List”), а затем из полученной строки обрезаются все лишние символы, чтобы осталось только название программы. Результат этого действия: получается полное название программы, в данном примере это Buy Me a Pie! — Grocery Shopping List — оно и передается следующему действию.

Сейчас название программы нам не будет нужно — оно понадобится потом. Поэтому его нужно сохранить в новую переменную. Из раздела Утилиты добавьте действие Установить значение переменной и повторите те же манипуляции, что и с предыдущим аналогичным действием — только в этот раз создайте переменную с именем appName. Результат этого действия: до конца выполнения всего алгоритма в переменной appName будет храниться название программы, полученное в предыдущем действии.

Шаг 4. Ищем веб-адрес иконки

«Автоматор» так устроен, что результат работы предудыщего действия передается следующему. Но нам сейчас нужно не название программы, а исходная текстовая информация о ней, где мы будем искать адрес иконки. Поэтому из раздела Утилиты добавьте действие Получить значение переменной — сразу щелкните правой кнопкой мыши на заголовке этого действия и в появившемся меню выберите команду Игнорировать ввод. Теперь действие, с которым вы сейчас работаете, никогда не будет учитывать результат работы предыдущего действия, чтобы там ни происходило. В выпадающем списке Переменная выберите пункт lookup. Результат этого действия: следующему действию будет передано значение переменной lookup, в котором ранее мы сохранили текстовую информацию о программе.

Из раздела Утилиты добавьте действие Запустить shell-скрипт с такими же параметрами, что и одноименные действия на второй и пятой позициях в нашем алгоритме. Сценарий в этом действии аналогичен тому коду, который в пятом «скриптовом» действии искал название программы: находится пара ключа и значения (“artworkUrl512”:“http://a1013.phobos.apple.com/us/↵ r30/Purple6/v4/c7/9d/77/c79d778f–89a1-a925-b424–0e43819dfbba/mzl.xsxlaekt.png”), из которого убираются все кавычки, двоеточия и название ключа. Результат этого действия: получаем веб-адрес иконки, который передается следующему действию.

Шаг 5. Загружаем иконки на рабочий стол

Из раздела Интернет добавьте действие Загрузить URL, и в выпадающем списке Где укажите папку рабочего стола. Результат этого действия: по полученному от предыдущего действия адресу на рабочий стол будет загружен файл иконки.

Шаг 6. Задаем загруженному файлу имя программы

Посмотрите еще раз на веб-адрес иконки, указанный двумя абзацами выше: файл будет загружен с именем mzl.xsxlaekt.png. Конечно, можно оставить и так, но чтобы было красивее, это имя можно заменить на название программы, которое мы уже нашли и сохранили в переменную appName.

Из раздела Файлы и папки добавьте действие Переименовать объекты Finder и настройте его таким образом. В основном выпадающем списке выберите Имя единичного объекта, а выпадающем списке Имя выберите пункт Только основное имя. Теперь текстовое поле до — перетащите в него переменную appName, которая доступна в общем списке переменных в нижней части окна «Автоматора». Результат этого действия: загруженный ранее файл будет переименован с сохранением расширения. В нашем примере получится готовая картинка в виде файла Buy Me a Pie! — Grocery Shopping List.png.

Шаг 7. Еще кое-что…

Чтобы все было совсем красиво, можно добавить всплывающее уведомление — эта возможность появилась в «Автоматоре» с выходом OS X 10.9. Из раздела Утилиты добавьте действие Показать уведомление. В первый заголовок введите название почти готовой службы — Загрузить иконку приложения, а в поле Сообщение введите короткий текст типа: «Иконка загружена на ваш рабочий стол».

Шаг 8. PROFIT

Все, наша служба готова к труду и обороне. Сохраните ее под именем Загрузить иконку приложения и сразу переходите к Safari. Открыв в нем какую-нибудь страницу из App Store или Mac App Store, найдите в меню Safari > Службы новый пункт Загрузить иконку приложения — и, щелкнув на нем, запустите только что сохраненную службу. Через секунду-две, в зависимости от мощности вашего Мака, вы увидите уведомление — и иконку на рабочем столе, которую можно запросто использовать в дальнейшей работе.

«Да это сложно для меня!»

На самом деле в описанном выше процессе ничего сложного. Я сам не программист (хотя основы программирования после института еще помню), но достаточно было потратить часа три на неспешные поиски решения отдельных промежуточных задач (например, я не знал синтаксис регулярных выражений в «Питоне» — пришлось изрядно погуглить) — и дело в шляпе. Мне приятно, что хотя бы несколько человек в нашей команде находят такой способ получения иконок приложений более удобным.

Для удобства вы можете скачать уже готовую службу по кнопке, расположенной ниже. Открыв workflow-объект в «Автоматоре» можно внимательно изучить содержимое и настройки каждого действия, чтобы все изложенное было понятнее.

Скачать службу (ZIP-архив, 413 КБ)

Если кто-то из вас знает, как оптимизировать приведенный выше алгоритм, или может подсказать способ попроще — прошу в комментарии. :)

*Деятельность Meta Platforms Inc. и принадлежащих ей социальных сетей Facebook и Instagram запрещена на территории РФ.

Если нашли ошибку, выделите текст и нажмите Ctrl + Enter
Это интересно
Гид по здоровому весу. Что нужно знать об ожирении

Гид по здоровому весу. Что нужно знать об ожирении

Учебный год под контролем!

Учебный год под контролем!

Как в кино, только дома: устраиваем атмосферный просмотр фильмов с Samsung Микро RGB

Как в кино, только дома: устраиваем атмосферный просмотр фильмов с Samsung Микро RGB

Реклама
3 места в доме, которые часто захламляются 

3 места в доме, которые часто захламляются 

Комментарии
Deavy
03.02.14 21:58
Только она будет квадратная и без маски, что не совсем удобно.
Александр Журович
04.02.14 00:38
Дальше используется графический редактор. ;)
Deavy
23.03.14 15:18
Мне достаточно 175х175px, которые можно найти на странице приложения в App Store, и веб-инспектора в Chrome/Safari.
Артем Козориз
04.02.14 19:57
Не всегда! В некоторых приложениях иконки уже закругленные и даже с тенью. Ну а если нет, то это можно сделать в том же Pixelmator'е или Ps. Это намного проще чем выполнять все необходимые действия вручную :)
Александр Журович
05.02.14 02:29
Ниже подсказывают, что в пути к значку нужно заменить jpg на png — и получится уже готовая иконка в форме суперэллипса. Но, увы, форма получается с зазубренными краями. Так что графический редактор все равно понадобится.
Arthur Sitdikov
04.02.14 00:47
Вот вы усложняете простой запрос в гугл всё решает :) http://bit.ly/1elamnm
Александр Журович
04.02.14 00:52
Тоже имеющий право на жизнь способ. НО: 1) нужно открыть страницу images.google.com 2) нужно ввести поисковый запрос 3) нужно щелкнуть на нужной иконке (допустим, она в числе первых — искать не нужно) 4) перетащить иконку на рабочий стол Много ручных действий. А ведь страница App Store уже открыта — она нам все равно нужна для работы. С этой точки и начинает действовать наша служба — нужно лишь вызвать ее и подождать пару секунд, пока на рабочем столе иконка не появится сама собой. Но ваш способ все равно имеет право быть, глупо его отрицать. :)
SowenoK
04.02.14 15:12
1) Открываете страницу приложения - http://itunes.apple.com/ru/app/id725418306 2) Открываете изображение иконки в новой вкладке. Не знаю как в сафари, но в хроме правой кнопкой на иконку - просмотр кода элемента, там будет ссылка - http://a5.mzstatic.com/us/r30/Purple6/v4/c7/9d/77/c79d778f-89a1-a925-b424-0e43819dfbba/mzl.xsxlaekt.175x175-75.jpg 3) В исходной ссылке заменяем ".175x175-75.jpg" на ".png", готово!
SowenoK
04.02.14 15:19
Вроде в сафари правой кнопкой на иконку - проверить объект.
Александр Журович
05.02.14 02:28
А еще заменить 175x175 на 512x512. Но тогда будут видны зазубренные края маски. В общем, я пользовался этим способом, пока не обломался выковыривать иконки вручную.
Артем Козориз
04.02.14 19:58
Еще раз спасибо, Саша!
Sergey Pimenov
05.03.14 19:43
Александр, добрый день. Я был так впечатлён вашей статьёй, что попросил наших программистов сделать публичным нам внутренний инструмент по получению любых ресорсов из App Store и iTunes Store — иконки, обложки, скриншоты и тд. Это работает через Apple Search Api и там всегда актальные данные. Буду рад, если вам это поможет в работе. http://applifto.ru/resource
Александр Журович
05.03.14 19:46
Круууто! :) Спасибо, Сергей. Поделюсь ссылкой у себя в твиторе.
Что вы могли пропустить
Какие батарейки лучше: алкалиновые, щелочные или солевые
Какие батарейки лучше: алкалиновые, щелочные или солевые
0
Вчера
Ликбез
Технологии
Как скачать видео с YouTube на телефон и компьютер: 6 проверенных способов
Как скачать видео с YouTube на телефон и компьютер: 6 проверенных способов
0
Вчера
Технологии
Технологии
Появился первый тизер Xiaomi 18 Pro с экраном сзади и обновлённой камерой
Появился первый тизер Xiaomi 18 Pro с экраном сзади и обновлённой камерой
0
Вчера
Новости
Устройства
Apple готовит складной iPhone Duo с более крупным дисплеем и кое-что для геймеров
Apple готовит складной iPhone Duo с более крупным дисплеем и кое-что для геймеров
0
14 сентября
Новости
Устройства
Почему искрит розетка и опасно ли это
Почему искрит розетка и опасно ли это
0
14 сентября
Технологии
Технологии
Мама, я программист: 10 проектов для знакомства с вайбкодингом
Мама, я программист: 10 проектов для знакомства с вайбкодингом
0
13 сентября
Технологии
Технологии
Объясняем за минуту: как узнать, поддерживает ли ваш телефон eSIM
Объясняем за минуту: как узнать, поддерживает ли ваш телефон eSIM
0
12 сентября
Технологии
Технологии
Какая раскладушка лучше — iPhone Duo или Samsung Galaxy Z Fold 8
Какая раскладушка лучше — iPhone Duo или Samsung Galaxy Z Fold 8
0
11 сентября
Устройства
Устройства
5G официально запустили в России — но с iPhone подключиться не выйдет
5G официально запустили в России — но с iPhone подключиться не выйдет
0
11 сентября
Новости
Технологии
Американский стартап вызвал около 70 миллионов литров дождя с помощью дронов — на это ушло 3 часа
Американский стартап вызвал около 70 миллионов литров дождя с помощью дронов — на это ушло 3 часа
0
11 сентября
Новости
Технологии
Чем новые iPhone 18 Pro и Pro Max отличаются от прошлогодних iPhone 17 Pro и Pro Max
Чем новые iPhone 18 Pro и Pro Max отличаются от прошлогодних iPhone 17 Pro и Pro Max
0
10 сентября
Ликбез
Устройства
ИИ может уничтожить человечество в ближайшее десятилетие — так считает эксперт по безопасности из Anthropic
ИИ может уничтожить человечество в ближайшее десятилетие — так считает эксперт по безопасности из Anthropic
0
10 сентября
Новости
Технологии
9 лучших бесплатных программ для форматирования флешки в 2026 году
9 лучших бесплатных программ для форматирования флешки в 2026 году
0
10 сентября
Ликбез
Технологии
В Сети неоднозначно приняли iPhone Duo — многие вступились за Samsung
В Сети неоднозначно приняли iPhone Duo — многие вступились за Samsung
0
10 сентября
Новости
Технологии
МТС открыла предзаказ на iPhone 18 Pro и складной iPhone Duo — цены внушительные
МТС открыла предзаказ на iPhone 18 Pro и складной iPhone Duo — цены внушительные
0
10 сентября
Новости
Устройства

Новые комментарии

Аватар автора комментария
Tatyana Katunina1 час назад

0 / 0

Спасибо, что поделились! Согласна с предыдущим комментатором, и пусть у вас всё будет хорошо ❤
«Сходи к психологу!» — когда этот совет не поможет
Аватар автора комментария
Ali Allahverdiyev5 часов назад

0 / 0

Супер
В каком порядке смотреть франшизу «Чужой», чтобы полностью в ней разобраться
Аватар автора комментария
Elena Aslanova6 часов назад

0 / 0

Домашние колбаски сырые , типа купат или копченные
Мачанка
Аватар автора комментария
D.V.6 часов назад

+1 / 0

Лена, прям читаю и вау, вы прям молодец 👍👍👍
«Сходи к психологу!» — когда этот совет не поможет
ИГРА: Снова в школу! Найдите всё, что пригодится для учёбы

ИГРА: Снова в школу! Найдите всё, что пригодится для учёбы

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииО компании
Подписка
TelegramВКонтактеTwitter (X)PinterestYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях