борьба с tinyurl.com

многим людям не нравятся длинные ссылки. Я могу их понять, если эти ссылки не относятся к человекопонятным урлам, и содержат большей частью мешанину из разных символов. Однако даже в таких ссылках доменное имя обычно легко читается, и само по себе несёт некоторую информацию. Только вот даже эти крохи всяческие «сокращатели ссылок» вроде tinyurl.com или b23.ru безжалостно скрывают за другой мешаниной символов, хотя и намного более короткой

с этим можно бороться, благо каждый сам хозяин своему браузеру, в котором показываются эти ссылки. Берётся простой user script, вставляется в браузер — и вуаля! Достаточно навестись мышью на короткую ссылку, чтобы она развернулась во всю длину

а теперь о технических подробностях. Вроде всё просто — нужно отправить запрос по этому адресу, и прочитать заголовок редиректа. Двойной облом: редирект происходит автоматически, да и отправить запрос на другой домен нельзя. Можно только использовать JSONP, но для этого нужен сервер. О, Simon Willison недавно делал сервис json-head, который как раз возвращает заголовки, отдаваемые урлом! Опять облом: сервис использует запрос HEAD, на который «сокращатели» реагируют неправильно. Пришлось делать свой сервис, только не показывать его никому — хостинг потенциальной нагрузки не выдержит. Впрочем, для проблемы нагрузки появилось решение: Google App Engine, который недавно открылся-таки для всех желающих

алгоритм работы в итоге такой: находим на странице все ссылки длиной меньше 30 символов, ведущие на другой домен, и вешаем на них обработчик mouseover и focus, который подгружает с сервера развёрнутый урл и заменяет им ссылку. При изменении документа повторяем

эх, давно не удавалось вот так прийти домой и напрограммить что-нибудь : )

update: как это обычно и бывает, на следующий день нашёлся аналогичный скрипт-разворачиватель. Хотя он не настолько универсальный, поэтому свой разворачиватель коротких ссылок я положу рядом

Артемий Трегубенко,
, ,

comments powered by Disqus