Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Большая распродажа
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
МакрадарСоветы
16 января 2013

Automator: Быстрое сокращение длинных ссылок в тексте. Часть 2

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

Automator: Быстрое сокращение длинных ссылок в тексте. Часть 2

Хотя описанный ранее алгоритм сокращения ссылок через «Автоматор» , с технической точки зрения, работает без нареканий, на практике с ним могут возникать проблемы. Например, социальная сеть Facebook* довольно часто не пропускает ссылки на goo.gl, считая их потенциально опасными. Поэтому пришлось озадачиться «планом Б», в котором главную роль играет другой веб-сервис — Bitly.com.

С этой службой проблем на «Фейсбуке*» уже не возникает, однако в «план Б» вносится важный пункт — обязательная регистрация на Bitly.com. С одной стороны, это немного дополнительной возни, но благодаря этому у вас появляется преимущество: все сокращаемые через службу «Автоматора» ссылки будут сохраняться под вашей учетной записью на Bitly. К тому же Bitly, в отличие от Goo.gl, поддерживает родную «сокращалку» Facebook* — on.fb.me. ;)

Зарегистрировавшись, перейдите на страницу bitly.com/a/settings/advanced. Внизу щелкните на ссылке Show legacy API key и отметьте для себя текстовое поле Login — его содержимое вам скоро понадобится.

Теперь можно приступать к созданию службы в «Автоматоре». В готовом виде она выглядит так:

Служба Automator.

Как видите, это консольный bash-сценарий, который принимает на обработку выделенный в тексте текст (веб-ссылку) и заменяет его на сокращенный веб-адрес (все это определено в «шапке» процесса). Вот его полный текст:

encodedURL=$(echo -n "$1" | sed 's/ /%20/g;s/!/%21/g;s/"/%22/g;s/#/%23/g;s/$/%24/g;s/&/%26/g;s/'''/%27/g;s/(/%28/g;s/)/%29/g;s/:/%3A/g')

userID=<ID>

userPASS=<Пароль>

if [[ $encodedURL != http* ] ];

then

encodedURL=“http://$encodedURL”

fi

accessToken=$(

curl “https://api-ssl.bitly.com/oauth/access_token”

–request “POST”

–user “$userID:$userPASS”

)

curl “https://api-ssl.bitly.com/v3/shorten”

–data “access_token=${accessToken}”

–data “format=txt”

–data “longUrl=$encodedURL”

Весь код можно разделить на три условные части:

  1. Сначала задаем три переменных: входящую веб-ссылку (с ASCII-преобразованием), а также ваши Bitly-идентификатор (помните, текстовое поле Login, о котором речь шла чуть выше?) и Bitly-пароль. Не забудьте вместо <ID> и <Пароль> подставить свои значения.
  2. Далее, используя переменные с идентификатором и паролем, через систему безопасности Bitly.com получаем так называемый маркер доступа.
  3. Наконец, используя сгенерированный маркер доступа, посредством консольной команды curl отправляем исходный веб-адрес и получаем ее сокращенный вариант, который Automator подставляет в текст.

Теперь остается только сохранить службу под удобным для вас названием — и проверить ее работоспособность в любом текстовом поле.

P. S. В комментариях к предыдущей статье о сокращении ссылок через Automator называется универсальная веб-служба Shrt.org.ua, которая значительно упрощает алгоритм и позволяет работать с любой из нескольких десятков веб-сокращалок безо всяких регистраций и аутентификаций. Однако поскольку этот проект поддерживается энтузиастами, в его работе случаются сбои — досадно, когда нужно быстро сократить ссылку, видеть сообщение о недоступности службы.

P. P. S. О том, что такое Automator и чем он полезен Мак-пользователям, всегда можно узнать из материала на «МакРадаре».

Добавлено: Читатель Евгений Степанищев указал на неточности в изложенном выше коде сценария и предложил свой более лаконичный и универсальный вариант. Сценарий Евгения подойдет всем, кто сталкивается в работе с веб-ссылками, содержащими в себе нелатинские символы (например, адреса с поисковыми запросами на русском языке, ссылки на русские статьи в «Википедии» и т. д.). Большое спасибо за участие.

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

Если нашли ошибку, выделите текст и нажмите Ctrl + Enter

Лучшие предложения

Находки AliExpress: самые интересные и полезные товары недели

Находки AliExpress: самые интересные и полезные товары недели

Наушники Soundcore Liberty 5 подешевели на «Великой китайской распродаже»

Наушники Soundcore Liberty 5 подешевели на «Великой китайской распродаже»

Где отдохнуть летом в России

Где отдохнуть летом в России: 7 необычных мест

Надо брать: набор из 228 инструментов от Deko со скидкой 66%

Надо брать: набор из 228 предметов от Deko со скидкой 66%

10 товаров, чтобы сделать кухню лучшим местом в доме

10 товаров, чтобы сделать кухню лучшим местом в доме

Моющий пылесос Roborock F25 Ultra

Надо брать: моющий пылесос Roborock F25 Ultra со скидкой 45%

15 товаров, которые обидно упускать с такими скидками на распродаже AliExpress

15 товаров, которые обидно упускать с такими скидками на распродаже AliExpress

Надо брать: кроссовки от Li-Ning для мокрой весны и нежаркого лета

Надо брать: кроссовки от Li-Ning для мокрой весны и нежаркого лета

Это интересно
Куда поехать за классным сувениром: 7 точек Золотого кольца с удивительными народными промыслами

Куда поехать за классным сувениром: 7 точек Золотого кольца с удивительными народными промыслами

Где отдохнуть от городской суеты: 5 национальных парков России для весеннего отпуска

Где отдохнуть от городской суеты: 5 национальных парков России для весеннего отпуска

«Семальтара»: как работает семаглутид в таблетках и для чего его назначают

«Семальтара»: как работает семаглутид в таблетках и для чего его назначают

От обучения к трудоустройству: 3 истории женщин, которые добились карьерных успехов в сфере новых технологий

От обучения к трудоустройству: 3 истории женщин, которые добились карьерных успехов в сфере новых технологий

Комментарии
Евгений Степанищев
16.01.13 16:36
Мне кажется, неправильный способ экранирования. Вот этот лучше: xxd -p | sed 's/n//g;s/(..)/%1/g'
Alexander Zhurovich
16.01.13 16:49
Правильный, ибо работает. А вы свой проверили? Строку INVALID_URI не получаете?
Евгений Степанищев
16.01.13 22:16
Ну так кодируйте только нужную часть, а не всё вообще. Вы уверены, что у вас там всё работает? Китайские символы нормально придут, например? Вы кодируете не всё, что по стандарту положено, а только очень небольшой набор символов.
Alexander Zhurovich
16.01.13 22:18
Китайские? На китаеязычных читателей МакРадара я как-то не расчитывал. :( Но ваш вариант у меня не работает. Почему бы?
Евгений Степанищев
16.01.13 23:07
Я же объяснил почему: кодируйте только нужную часть URL, домен кодировать не нужно. Ну ок, не рассчитывали вы на китаеязычных читателей (хотя почему нужно быть китайцем, чтобы встретить в интернете URL на китайском — загадка). Но, вы свой-то пример запускали? Что со ссылками, которые начинаются с https? Зачем у вас первый доллар в строке №7? Почему в пятой строке у вас квадратные скобки не двойные? В одинарных у вас будет точное сравнение, а не по подсроке. Почему в первой строке у вас echo без -n, вы получите ещё и ненужный перевод строки. Идею с проверкой на существование переменной accessToken я не понял. Вероятно, я чего-то не знаю. Разве «автоматор» каждый раз не пускает новый шелл для каждого запуска команды? Разве переменные будут жить между сеансами?
Alexander Zhurovich
16.01.13 23:30
Евгений, я понял, что вы дока в баше. Давайте вы напишете правильный сценарий, а я его вставлю вместо своего — с благодарственной подписью.
Евгений Степанищев
17.01.13 08:50
Я вот такой написал: http://bolknote.ru/2013/01/16/~3838, но ваш он не заменит — я отказался от имени пользователя и пароля, может многие это посчитают вкусовщиной, но мне некомфортно, что у меня пароль внутри скрипта.
Alexander Zhurovich
17.01.13 10:32
О, спасибо. Конечно, ваш скрипт изящнее, виден большой опыт. Хотя он в гораздо большей степени для гиков, в нем интересно покопаться. Такой вопрос вдогонку: вы сначала советовали команду xxd, а потом решили воспользоваться командой hexdump. Почему?
Евгений Степанищев
17.01.13 13:10
Я как-то не сообразил, что мы про Мак говорим сначала, я обычно, когда предлагаю вариант, стараюсь, чтобы везде работало :) С hexdump работать проще, но он есть по-умолчанию, только в BSD-системах, xxd же, если мне не изменяет память, есть везде. А потом я сообразил, что это «Мак» и не к чему так извращаться :)
Alexander Zhurovich
17.01.13 14:32
Понятно. :) Еще раз спасибо за помощь. Теперь знаю, к кому обращаться за консультацией. А то Гугл временами не очень помогает с поиском ответов на вопросы.
Евгений Степанищев
17.01.13 15:28
Обращайтесь, если что :) У меня даже несколько игр на баше есть :)
Rostyslav Pelekhovych
16.01.13 17:48
возвращает "UNKNOWN_ERROR"
Alexander Zhurovich
16.01.13 18:41
Давайте анализировать, что вы не так сделали. 1. Зарегистрированы на Bitly.com? 2. Идентификатор вашей учетной записи правильно скопирован? 3. В код сценария нужные данные правильно вставлены (без треугольных скобок)?
fk
16.01.13 20:05
Возвращает INVALID_URl
Alexander Zhurovich
16.01.13 20:20
Тот же список вопросов и к вам (см. предыдущий комментарий). Сценарий работает, поэтому давайте определим, что из указанного в статье вы пропустили мимо внимания.
Alexander Zhurovich
16.01.13 20:22
К тому же ссылка должна содержать префикс http:// — иначе также будет выдано сообщение INVALID_URI. Добавлено: я дополнил сценарий конструкцией, которая добавляет этот префикс, если его не было. Если в этом была проблема, то теперь она должна быть устранена.
Что вы могли пропустить
Как хранить зимнюю одежду, шапки и обувь, чтобы вещи не испортились
Как хранить зимнюю одежду, шапки и обувь, чтобы вещи не испортились
0
21 марта
Советы
Советы
Когда сажать бальзамин на рассаду и как правильно это делать
Когда сажать бальзамин на рассаду и как правильно это делать
0
18 марта
Ликбез
Советы
Когда сажать сальвию на рассаду и как правильно это делать
Когда сажать сальвию на рассаду и как правильно это делать
0
15 марта
Ликбез
Советы
Как стирать кожаные штаны правильно
Как стирать кожаные штаны правильно
0
14 марта
Ликбез
Советы
24 хороших сорта и гибрида томатов для теплицы и открытого грунта
24 хороших сорта и гибрида томатов для теплицы и открытого грунта
0
9 марта
Ликбез
Советы
Как ухаживать за стиральной машиной: 7 важных правил
Как ухаживать за стиральной машиной: 7 важных правил
2 марта
«Горящая изба»
Советы
Как ухаживать за цветами в губке
Как ухаживать за цветами в губке
0
16 февраля
Ликбез
Советы
Как почистить термос внутри и снаружи
Как почистить термос внутри и снаружи
0
15 февраля
Советы
Советы
Как и чем мыть кисти для макияжа
Как и чем мыть кисти для макияжа
0
8 февраля
Ликбез
Советы
Как часто надо стирать одежду
Как часто надо стирать одежду
0
31 января
Советы
Советы
Как организовать пространство, если ты неряха: личный опыт
Как организовать пространство, если ты неряха: личный опыт
0
30 января
Советы
Советы
Как хранить дома книги, если их очень много
Как хранить дома книги, если их очень много
0
24 января
Советы
Советы
Как отстирать гуашь с одежды
Как отстирать гуашь с одежды
0
19 января
Ликбез
Советы
Почему запотевают очки и как это исправить
Почему запотевают очки и как это исправить
0
18 января
Советы
Советы
Как убрать клей и суперклей с одежды, рук и других поверхностей
Как убрать клей и суперклей с одежды, рук и других поверхностей
0
13 января
Ликбез
Советы

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

Аватар автора комментария
Саплахидис Георгий1 час назад

0 / 0

МЕНЯ ЗОВУТ САПЛАХИДИС ГЕОРГИЙ Я ГРЕЧЕСКИЙ ПОНТИЕЦ НЕ КТО ПОПАЛО. РАБОТАЮ И ЖИВУ В ЭЛЛАДЕ. МНЕ НРАВЯТСЯ СЕКС ИГРУШКИ НО В МЕРУ КОНЕЧНО. Люблю хорошо провозить время с дружками все туда сюда, люблю я знакомится и с красивыми сисясто-жапастыми так скажем женщинами и с мужичками(в хорошем смысле слова). Чисто люблю компании, шашлыки машлыки, застолья мастолья все дела. ЕСЛИ КТО ХОЧЕТ ЗАХОДИТЕ МНЕ В ОДНОКЛАССНИКИ https://ok.ru/profile/578770696255 ПОБОЛТАЕМ КАК ГОВОРИТСЯ (ПОПИЗДИМ) как СЛЕДУЕТ, ИЛИ ЗВОНИ МНЕ ВООБЩЕМ Оки чпоки
Как пользоваться анальной пробкой
Аватар автора комментария
Саплахидис Георгий1 час назад

0 / 0

Меня зовут Саплахидис Георгий мне 65 и я можно сказать часто практикую себе.Раньше огурцом это делал а теперь технология понимаете шагнула в перед. А вибратор это удобно, сунул себе в пер**к и ушол. Кто есть единомышленники пишите https://m.ok.ru/profile/578770696255 будет интересно обсудить. Живу в Греции.
Как пользоваться анальной пробкой
Аватар автора комментария
Алексей Новохоцкий6 часов назад

0 / 0

"Этот способ может как помочь, так и навредить накопителю. Если не уверены, не рискуйте." - реально помогло, спасибо!
Как восстановить флешку
Аватар автора комментария
Alexander K.7 часов назад

0 / 0

> 5. Диппер и атака клонов > Double Dipper > Третий сезон, 7‑я серия. откуда там третий сезон, если их всего два?
5 лучших серий «Гравити Фолз» — смешных и философских
Что такое «Велгия» и «Велгия Эко» и как они работают

Что такое «Велгия» и «Велгия Эко» и как они работают

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