Подтвердить что ты не робот

Импортировать методы AppleScript в другой AppleScript?

Есть ли способ использовать определенные методы AppleScript в других AppleScripts, которые ссылаются на исходный AppleScript с чем-то похожим на импорт (например, на PHP)?

Я написал метод, чтобы установить статус Skype и текст настроения:

on setSkypeStatus(status, mood_text)
    tell application "System Events"
        set skypeRunning to count (every process whose name is "Skype")

        if skypeRunning > 0 then --only set status if skype is running
            tell application "Skype"
                set myStatus to "SET USERSTATUS " & status
                set myMood to "SET PROFILE MOOD_TEXT " & mood_text

                send command myStatus script name "AppleScript"
                send command myMood script name "AppleScript"
                return skypeRunning
            end tell
        else
            return skypeRunning
        end if
    end tell
end setSkypeStatus

теперь я ищу что-то вроде import skype_methods.scpt. Есть ли такая функциональность. Я не могу что-то связать с Google.

4b9b3361

Ответ 1

Один из способов импорта другого script в качестве библиотеки - это определение свойства, которое инициализируется путем загрузки библиотеки в качестве объекта script. Затем вы можете использовать команду tell для вызова функций библиотеки.

property pSkypeLibrary : load script POSIX file "/Users/sakra/Desktop/skype_methods.scpt"

tell pSkypeLibrary
    setSkypeStatus("status", "mood")
end tell

Ответ 2

Script Foo.scpt

set theBar to "path:to:Bar.scpt" as alias
run script (theBar)

Script Bar.scpt

display dialog "Bar"

Результат: окно с надписью "Бар"

Ответ 3

Существует более элегантный способ сделать это. Вы можете сохранить файл skype_methods.scpt в папке Script Libraries на вашем компьютере.

В зависимости от того, как вы хотите определить доступность этой библиотеки, вы используете другую папку.

  • Поместите файл skype_methods.scpt в папку /Library/Script Libraries, чтобы сделать его доступным для всех пользователей на компьютере.
  • Поместите его в папку ~/Library/Script Libraries, чтобы сделать его доступным только для определенного пользователя.

Затем вы можете использовать все обработчики в этой библиотеке следующим образом:

property Skype : script "skype_methods"
Skype setSkypeStatus("status","mood")

Это предотвращает необходимость многочисленных блоков блокировки при использовании обработчиков из разных библиотек.

Ответ 4

Вы можете следить за этим репо https://github.com/abbeycode/AppleScripts, который организует свои скрипты в библиотеках

Вот пример https://github.com/abbeycode/AppleScripts/blob/master/Scripts/Download%20Chase%20Activity.applescript

property LibLoader : load script file ((path to scripts folder from user domain as text) & "Libraries:Library Loader.scpt")
property TransmissionLib : LibLoader loadScript("Libraries:Transmission.applescript")
property GrowlLib : LibLoader loadScript("Libraries:Growl.applescript")
property SafariLib : LibLoader loadScript("Libraries:Safari.applescript")
property DatesLib : LibLoader loadScript("Libraries:Dates.applescript")