Applescript для разбора Flickr URL? Изменить размер и добавить ссылку на страницу - PullRequest
0 голосов
/ 25 января 2011

Что я имею в виду, если у меня есть это в моем буфере обмена, например:

"http://farm6.static.flickr.com/5290/5377008438_8e3658d75f_m.jpg"

можно ли использовать applecript, чтобы изменить это на

" http://farm6.static.flickr.com/5290/5377008438_8e3658d75f_b.jpg"

(изменяя «m» на «b»)?

Это было бы удобно, потому что тогда я мог бы просто щелкнуть правой кнопкой мыши / скопировать URL-адрес фотографии со страницы миниатюр без необходимости углубляться в детали.Да, всего несколько щелчков мыши, чтобы перейти на страницу миниатюр к большому размеру, но все, что я могу сохранить, было бы неплохо.

Кроме того, можно ли скопировать идентификатор фотографии, чтобы я мог ссылаться на главнуюстраница с фотографией?

ex:

скопировать "5377008438" и вставить в основную ссылку "http://www.flickr.com/photos/dbooster/5377008438"

Я говорю только« appleScript », потому что это приходит на ум, но все, что я могвызов из экспандера текста будет работать.

Ответы [ 3 ]

1 голос
/ 25 января 2011

Управление URL можно сделать так:

set baseURL to "http://farm6.static.flickr.com/5290/5377008438_8e3658d75f_m.jpg"

set modURL to (characters 1 through -6 of baseURL as text) & "b.jpg"

set fileName to last item of (tokens of baseURL between "/")
set photoID to first item of (tokens of fileName between "_")
set mainPhotoPage to "http://www.flickr.com/photos/dbooster/" & photoID

{modURL, fileName, photoID, mainPhotoPage}

on tokens of str between delimiters
    set oldTIDs to text item delimiters of AppleScript
    set text item delimiters of AppleScript to delimiters
    set strtoks to text items of str
    set text item delimiters of AppleScript to oldTIDs
    return strtoks
end tokens

Когда я запускаю этот скрипт, я получаю

{"http://farm6.static.flickr.com/5290/5377008438_8e3658d75f_b.jpg", "5377008438_8e3658d75f_m.jpg", "5377008438", "http://www.flickr.com/photos/dbooster/5377008438"}

Мне не совсем понятно, нужна ли вам помощь во взаимодействии с буфером обмена. Но в любом случае это легко, вы можете просто использовать get и set:

get the clipboard
set the clipboard to "example"
0 голосов
/ 26 января 2011

Спасибо за ответы всем!

Я прошу прощения за то, что не дал больше деталей.Этим утром я использовал код, который дает Майкл, изменив его так, чтобы он взял две переменные (прямой URL-адрес фотографии и заголовок фотографии) и выложил контрольный конец некоторого кода уценки для отображения фотографии и ссылки, запрашивая у меня размеры фотографии и границы.

Кажется, это работает довольно хорошо.Вот что я написал.

copy (the clipboard) to URL_TITLE

set baseURL to first text item of (tokens of URL_TITLE between " ")
set baseTitle to ("\"" & second text item of (tokens of URL_TITLE between "\"") & "\"")

set modURL to (characters 1 through -6 of baseURL as text) & "b.jpg"

set fileName to last item of (tokens of baseURL between "/")
set photoID to first item of (tokens of fileName between "_")
set mainPhotoPage to "http://www.flickr.com/photos/dbooster/" & photoID

set photoWidth to the text returned of (display dialog "Photo Width?" default answer "980")
set photoHeight to the text returned of (display dialog "Photo Height?" default answer "605")
set photoBorder to the text returned of (display dialog "Border Size?" default answer "10")

set var6 to ("[photo]: " & modURL & " " & baseTitle & " width=" & photoWidth & "px" & " height=" & photoHeight & "px" & " style=\"border: " & photoBorder & "px solid black\" class=\"aligncenter shadow\" & "\n" & [photopage]: " & mainPhotoPage & " target=\"_blank\" rel=\"nofollow\"")

set the clipboard to var6

on tokens of str between delimiters
    set oldTIDs to text item delimiters of AppleScript
    set text item delimiters of AppleScript to delimiters
    set strtoks to text items of str
    set text item delimiters of AppleScript to oldTIDs
    return strtoks
end tokens

Как я уже сказал, все прекрасно работает.У меня есть плагин Firefox, который копирует прямую ссылку на фотографию и заголовок фотографии (URL «TITLE») в буфер обмена.Затем я назначил этому сценарию горячую клавишу с Fastscripts, и он возвращает результат в буфер обмена.Затем я могу вставить результат в мой файл шаблона сообщения.

Я не смог заставить его работать с расширителем текста, но Fastscripts вызывает его достаточно быстро, поэтому проблем нет.

Если честно ... я очень мало представляю, что я сделал.Я совсем не знаю AppleScript.Я только предложил это для моего вопроса, потому что расширитель текста поддерживает это, и это казалось достаточно легким.Таким образом, даже если сценарий, который я написал, кажется, работает, это не что иное, как я возился с кодом, который дал Майкл.

Значит, если вы видите гораздо более эффективный способ сделать то, что я сделал, я весь в ушах.

Еще раз спасибо за помощь, ребята!

0 голосов
/ 25 января 2011

Я думаю, что это должно быть вашей отправной точкой:

changeUrl("http://farm6.static.flickr.com/5290/5377008438_8e3658d75f_m.jpg")

on changeUrl(theUrl)
  set theNewUrl to do shell script "echo " & theUrl & "| tr '_m.jpg' '_b.jpg' "
end changeUrl

... хотя я не совсем уверен, чего вы в итоге добиваетесь - хотите ли вы создать ссылку, заканчивающуюся на "_b.jpg", из "5377008438", читаемой из вашего буфера обмена?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...