2010-04-09 11 views
20

Esiste un modo per utilizzare i metodi AppleScript definiti in altri AppleScript che fanno riferimento all'AppleScript originale con qualcosa di simile all'importazione (ad es. In PHP)?Importare metodi AppleScript in un altro AppleScript?

ho scritto una Methode per impostare lo stato di Skype e l'umore-text:

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 

ora sto cercando qualcosa di simile importazione skype_methods.scpt. Esiste una tale funzionalità. Non riesco a parlare di qualcosa con Google.

risposta

22

Un modo per importare un altro script come libra ry è definire una proprietà che è inizializzata caricando la libreria come oggetto di script. È quindi possibile utilizzare il comando tell per richiamare le funzioni della libreria.

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

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

Script Foo.scpt

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

Script Bar.scpt

display dialog "Bar" 

Risultato: una finestra che visualizza "Bar"

1

C'è un modo più elegante per farlo. Puoi salvare il tuo file skype_methods.scpt all'interno di una cartella Script Libraries sul tuo computer.

A seconda di come si desidera definire la disponibilità di questa libreria, si utilizza una cartella diversa.

  • Inserire il file skype_methods.scpt nella cartella /Library/Script Libraries per renderlo disponibile per tutti gli utenti sul computer.
  • Inserirlo nella cartella ~/Library/Script Libraries per renderlo disponibile solo per un utente specifico.

È quindi possibile utilizzare tutti i gestori in quella biblioteca come segue:

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

questo modo si evita la necessità di numerosi blocchi dire quando utilizza i gestori di diverse librerie.

0

Puoi seguire questa repo https://github.com/abbeycode/AppleScripts che organizza i propri script in librerie

Ecco un esempio 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") 
Problemi correlati