Ярлыки

3 мар. 2014 г.

UrlShoter сокращаем ссылки с помощью clck.ru

Скрипты в InDesign позволяют не только работать с материалами публикации, но и общаться с внешним миром.  Для этого в API предусмотренна функция Socket. 

Задачи по работе иногда бывают довольно разные. В очередной раз оказалось нужно генерировать много коротких ссылок. Да можно найти онлайн сервис генерации коротких ссылок и решить вопрос довольно быстро. Но это не наш путь))

Иногда полезно узнать новое в объектной модели InDesign. Так и появился скрипт написанный ниже. Он не совсем правильно оформлен но со своей задачей справляется на все сто. Получился довольно неплохой пример работы с Socket в JavaScript.

myDoc = app.activeDocument;
mySelection = myDoc.selection[0]
myDoc = mySelection
app.findGrepPreferences = app.changeGrepPreferences = null;
myMask = "(http)(.+)( )"
app.findGrepPreferences.findWhat = myMask;
myGrep = myDoc.findGrep()
myCount = myGrep.length
for (i = 0; i < myCount; i++) { 
    var myTextFind = myGrep[i]
    myUrl(myTextFind.contents)
    var mySel = app.select(myTextFind);
    app.selection[0].insertionPoints[0].contents = reply1.toString() + " "
}
function myUrl(url) {
        reply = "";
        conn = new Socket;
        if (conn.open("clck.ru:80")) {
            var lens = url.length + 1
            ConLens = "Content-Length: " + lens.toString() + "\n\n"
            req = "GET /--?url=" + url.toString() + " HTTP/1.1"
            conn.writeln(req);
            conn.writeln("Host: clck.ru\n\n")
            reply = conn.read(999999);
            conn.close();
        }
        reply1 = reply.match("http.+")
        return reply1;
    }

Данный скрипт находит в тексте текст начинающийся с http + все символы + пробел
И отправляет запрос на сайт clck.ru в ответ он получает короткую ссылку типа http://clck.ru/1r которую и размещает рядом с полной ссылкой.

Надеюсь данный материал Вам был полезен.

Комментариев нет:

Отправить комментарий