
Однажды вечером я в очередной раз наткнулся на очень длинную ссылку, которою необходимо было скинуть в чат с ограниченным количеством символов в сообщении. Пришлось идти на сайт какого-то сервиса и сокращать мою ссылочку.
И тут я подумал — а почему нельзя конвертировать ссылки прямо в буфере, автоматически? Так родилась идея для маленькой утилитки.
Сразу встал вопрос выбора сервиса. Основные требования: без ограничений по кол-ву запросов (при моем использовании за час может выходить до 100-150 ссылок), с удобным API (желательно без регистрации) и с хорошими пингами. Сначала был выбран Bit.ly, так как пинги до него сначала были очень даже привлекательными, а инструменты для анализа — мощными (интересно же посмотреть, чем ты интересовался в течении дня). Собственно, разработка и велась опираясь на него.
О платформе и среде разработки я особо не думал — сижу чаще всего под Windows, люблю больше всего Delphi (да да, тот самый вымерший и не актуальный язык, можно не напоминать). За один вечер был найден модуль для Bit.ly и написана первая версия утилиты. Не скрою, друзья (были избраны как потенциальные тестеры) активно рапортовали о багах, которые я оперативно фиксил. Сразу сформировалось мнение потенциальных юзеров.
Первая версия умела сокращать первую ссылку в буфере и… в общем то, все.
Вторая научилась висеть в трее, переключатся по дабл-клику, выбирать домен (Bit.ly предоставляет два: bit.ly и j.mp).
Дальше начались проблемы. Всем хотелось сокращать все ссылки в буфере. Не проблема — за еще один вечер был переписан алгоритм детектирования и сокращения ссылок. Сразу появилась пара ошибок, как дальше оказалось — из-за собственной невнимательности. Спасибо наставнику, который навел меня на их решения.
В итоге, утилита в третьей версии умела сокращать все ссылки в буфере и писАться в автозагрузку, но при нескольких ссылках время сокращения доходило до 5-10 секунд, что не является приемлемым для программы такого назначения. В связи с этим, я быстро настрочил модуль для русского сервиса 3le.ru. Он был выбран как основной по нескольким причинам: пинги еще ниже, отсутствие регистрации и каких-либо ограничений. Время сокращения нескольких ссылок сразу упало до 1-3 секунд, что является допустимым (по крайней мере, для меня). В целом, получилась возможность выбирать один из трех доменов.
Скачать результат моих трудов можно тут, тут и тут,
а забрать исходники (с необходимыми модулями) — здесь, здесь и там.
P.S. Никакого отношения к этим двум сервисам не имею, они используются лишь как инструмент.
P.P.S. Спасибо за внимание.