Обработка списка выделенного текста в автомате с appleScript. - PullRequest
3 голосов
/ 10 июня 2011

При попытке выполнить действие automator, открывающее несколько вкладок из выделенного текста в качестве ввода, я столкнулся с проблемой appleScript, которую некоторое время не мог решить.Это включает в себя ответ, и я публикую это здесь, потому что я просто не смог найти документацию о том, как обрабатывать данные во «вводе» для полученного выбранного «текста» в действии автоматизатора «любое приложение», все для файлов, которыеприходит уже в виде списка.

При добавлении действия applecript вы получаете:

on run {input, parameters}

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

        repeat with URL in input
        set this_URL to URL

Так, как я могу рассматривать список выделенного текста как список элементов?

Ответы [ 2 ]

3 голосов
/ 11 июня 2011

решение состоит в том, чтобы сначала обрабатывать ввод как строку, а затем разбивать каждый абзац.

on run {input, parameters}

set inputText to input as string
set URL_list to every paragraph of inputText

Без обработки ввода «как строка» перед выполнением «каждого абзаца» он не будет работать.

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

on run {input, parameters}

set inputText to input as string
set URL_list to every paragraph of inputText
tell application "Safari"
    activate
    repeat with URL in URL_list
        set this_URL to URL
        # extra processing of URL could be done here for multiple params
        my new_tab()
        set tab_URL to "http://some_url.com?data=" & this_URL
        set the URL of document 1 to tab_URL
    end repeat
end tell
return input
end run

on new_tab()
    tell application "Safari" to activate
    tell application "System Events"
        tell process "Safari"
            click menu item "New Tab" of ¬
                menu "File" of menu bar 1
        end tell
    end tell
end new_tab

В качестве примера, скажем, у вас был список и служба вышеперечисленного с использованием "http://stackoverflow.com/posts/" & this_URL

6318162 
6318163 
6318164

Теперь вы можете выбрать их, щелкнуть службы и выбрать службу «StackOverflow - просмотреть вопросы», и она будет добавлять и открывать каждую на новой вкладке Safari. В моем случае мне нужно было проверить несколько записей DNSна нашем сервере все еще действительны и делают кучу поисков в whois.

2 голосов
/ 26 февраля 2014

Я искал то же самое, только для файлов, которые вводятся из Automator в AppleScript.

Уловка ddowns для этого не сработала, но в итоге воспользовалась этим, надеюсь, это поможет кому-то, кто ищет решение той же проблемы, с которой я столкнулся:

on run {input, parameters}

    -- create empty list
    set selectedFiles to {}

    -- add each list item to the empty list
    repeat with i in input
        copy (POSIX path of i) to end of selectedFiles
    end repeat

    -- show each item (just for testing purposes of course) 
    repeat with currentFile in selectedFiles
        display dialog currentFile as text
    end repeat

end run
...