10/17/2015 - 3:12 AM



Here are a couple of sample scripts to get you started. The first one creates a new group and then creates two snippets within it:

tell application “TextExpander”
 –– create a new group
 make new group with properties {name:”My New Script Group”}
 set newGroup to the result
 tell newGroup
  –– create a snippet, then set the major properties one by one
  make new snippet
  set newSnippet to the result
  set the abbreviation of newSnippet to “tastytreat”
  set the plain text expansion of newSnippet to “Toasted marshmallows are a tasty treat”
  set the label of newSnippet to “Snippet from AppleScript”
  –– create a snippet, setting properties immediately
  make new snippet with properties {label:”Second Scripted Snippet”, abbreviation:”scrptwo”, plain text expansion:”Eat Two Marshmallows”}
  set secondSnippet to the result
 end tell
end tell
The second script checks for the existence of a URL-based group. If no such group is found, that URL is imported:

–– This script checks to make sure that a group based on a particular URL is present.
–– If not, it imports that group
set success to false
set groupURL to (“” as text)
–– note coercion above: TE group source is type text, not URL
tell application “TextExpander”
 set sourceList to the source of every group
 if sourceList contains groupURL then
  –– the desired group is already present
  set success to true
  set newGroup to import URL group using URL groupURL
  –– the returned group is a placeholder for URL contents, which are downloaded asynchronously
  repeat with i from 1 to 10
   delay 1 –– allow some time for download, then poll the group placeholder
   tell newGroup
    –– find the number of snippets in the group
    –– unless the group is supposed to be empty, zero snippets indicates download failure
    count snippets
    set snipCount to the result
    if snipCount is not equal to 0 then
     set success to true
     exit repeat
    end if
   end tell
  end repeat
 end if
end tell
if not success then
 beep –– real error handling goes here
end if