Ilya Tychinin (ejuo) wrote,
Ilya Tychinin
ejuo

Расширение для раскрытия коротких ссылок.

 Зафигачил расширение для Оперы, Хрома и Фаерфокса. Занимается разыскиванием настоящих адресов, которые закодированы под короткими ссылками (типа такой). Настоящий адрес выводится в виде тайтла при наведении на ссылку.
 Объясню смысл сие творения. Короткие ссылки совершенно не информативны. Под ними может скрываться что угодно: сайты, музыка, пути к фотохостингам или сами jpg. Ссылка http://youverysexymegadisplaypornking.xxx/Eclecticism_in_modern_art.mp4, например, где всё ясно и понятно, или вот bit.ly/15kHEeF - русская рулетка, пройди, скачай 4Гб HD видео, порадуй себя :)
 Изначально хотелось чего-то изящного, унифицированного, простого, лёгкого, как белое облачко средь ясного неба :) Но в итоге вышла россыпь расширений и прокси-сервер в придачу. Обрисовал схему работы расширения:

Создаётся фоновый процесс, ищущий по шаблону вхождения (пока список коротких ссылок захардкоден). Далее этот список XHR запросом отправляется на гугловский appengine с включённым Access-Control-Allow-Origin = "*". В последнее время они проводят жёсткую политику, если количество входящих запросов взлетит до неведомых высот, то создатель сможет послать только лучи сочувствия и сожаления. Это очень узкое место.
Серверный Java-код создаёт соединение, далее получает заветный Location из заголовка запроса:
         HttpURLConnection connection = (HttpURLConnection) url.openConnection();
         connection.setInstanceFollowRedirects(false);
         connection.connect();
         String expandedURL =  connection.getHeaderField("Location");

В итоге полученный массив раскидывается по атрибутам title в выбранных ссылках.
sleexample
Наступает счастье. Теперь видно, куда нас послали и стоит ли туда вообще ходить.

Гитхаб расширения: здесь.
Расширение для Оперы, Хрома, Фаерфокса.
Tags: js, prog
Subscribe
  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments