Action
AS Embedded Action
Posted by sylumer,
Last update
about 5 years ago
- Unlisted
Steps
-
runAppleScript (macOS only)
on execute(draft) if content of the draft is "" then set strOriginal to text returned of (display dialog "Enter string to convert" default answer "") else set strOriginal to content of the draft end if return processString(strOriginal) end execute on processString(p_strInput) set strConverted to listToString(stringToPhonetic(p_strInput, ""), " ") -- Because we're passing a whole draft, let's forego speaking the conversion -- say strConverted return strConverted end processString on stringToPhonetic(p_strInput) --Initialise alphabets and output set strBase to "abcdefghijklmnopqrstuvwxyz0123456789" set listPhonetic to {"alfa", "bravo", "charlie", "delta", "echo", "foxtrot", "golf", "hotel", "india", "juliett", "kilo", "lima", "mike", "november", "oscar", "papa", "quebec", "romeo", "sierra", "tango", "uniform", "victor", "whiskey", "x-ray", "yankee", "zulu", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"} set strOutput to {} set listInput to stringToList(p_strInput, "") --For every character in the text to be converted, check if it is in the base alphabet string. repeat with i from 1 to length of listInput if strBase contains item i of listInput then --If it is, get the position, then get the item at the equivalent position in the NATO phonetic alphabet list set intPosition to offset of (item i of listInput as string) in strBase set end of strOutput to item intPosition of listPhonetic else --If it is not, just put the original untransformed character in set end of strOutput to item i of listInput end if end repeat return strOutput end stringToPhonetic on stringToList(p_strInput, p_strTempDelimiter) --Save and switch delimiter set strOriginalDelimiter to AppleScript's text item delimiters set AppleScript's text item delimiters to p_strTempDelimiter --Convert string to list set listOutput to (every text item of p_strInput) --Switch delimiter back and return new list set AppleScript's text item delimiters to strOriginalDelimiter return listOutput end stringToList on listToString(p_listInput, p_strTempDelimiter) --Save and switch delimiter set strOriginalDelimiter to AppleScript's text item delimiters set AppleScript's text item delimiters to p_strTempDelimiter --Convert list to string set listOutput to p_listInput as string --Switch delimiter back and return new string set AppleScript's text item delimiters to strOriginalDelimiter return listOutput end listToString
-
script (macOS only)
draft.content = draft.content + "\n" + context.appleScriptResponses[0]; draft.update();
Options
-
After Success Default Notification Info Log Level Info
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.