2010-04-09 15 views
20

¿Existe alguna manera de utilizar métodos AppleScript definidos en otros AppleScripts que hagan referencia al AppleScript original con algo similar a la importación (por ejemplo, en PHP)?¿Importar métodos de AppleScript en otro AppleScript?

me escribió una méthode para establecer el estado de Skype y el estado de ánimo de texto:

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 

ahora estoy en busca de algo así como skype_methods.scpt importación. ¿Hay tal funcionalidad? No puedo hacer nada relacionado con Google.

Respuesta

22

Una forma de importar otro guión como una libra ry es definir una propiedad que se inicializa cargando la biblioteca como un objeto de script. A continuación, puede usar el comando tell para invocar las funciones de la biblioteca.

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

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

Guión Foo.scpt

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

Guión Bar.scpt

display dialog "Bar" 

Resultado: una ventana que muestra "bar"

1

Hay una forma más elegante de hacerlo. Puede guardar su archivo skype_methods.scpt dentro de una carpeta de bibliotecas de scripts en su computadora.

Dependiendo de cómo quiera definir la disponibilidad de esta biblioteca, use una carpeta diferente.

  • Coloque el archivo dentro de la carpeta skype_methods.scpt /Library/Script Libraries para que esté disponible para todos los usuarios en el equipo.
  • Colóquelo en la carpeta ~/Library/Script Libraries para que esté disponible solo para un usuario específico.

continuación, puede utilizar todos los gestores de esa biblioteca de la siguiente manera:

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

Esto evita la necesidad de numerosos elementos indican cuando se utilizan controladores de diferentes bibliotecas.

0

Usted puede seguir este repo https://github.com/abbeycode/AppleScripts que organiza sus guiones en las bibliotecas

Aquí es un ejemplo 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's loadScript("Libraries:Transmission.applescript") 
property GrowlLib : LibLoader's loadScript("Libraries:Growl.applescript") 
property SafariLib : LibLoader's loadScript("Libraries:Safari.applescript") 
property DatesLib : LibLoader's loadScript("Libraries:Dates.applescript") 
Cuestiones relacionadas