辞書.appで指定の単語を検索するAppleScriptです。
辞書.app(Dictionary.app)にはAppleScript用語辞書が存在していませんが、URL event経由で検索・表示できるほか、サードパーティのFramework経由でも串刺し検索できるようになっています。
URL eventはApple側から最もセキュリティ面で懸念されている箇所であり、以前はURL event経由でアプリケーション起動もできたのですが、いまはURL event経由のアプリケーション起動は(ごく一部の例外を除き)禁止されている様子です。
ただし、OSバージョンが上がるたびに微妙に辞書名称が変更されており、定数で指定されることに対して微妙にAppleのエンジニアが嫌がらせをしている様子が伺えます。
AppleScript名:辞書.appで指定の単語を検索する v3 |
— Created 2017-09-19 by Takaaki Naganoya — 2017 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" set aText to text returned of (display dialog "Input keyword to search" default answer "") set encText to encodeURL(aText) of me activate application "Dictionary" set aURL to "dict://" & encText open location aURL on encodeURL(origStr as string) set aStr to current application’s NSString’s stringWithString:origStr set encodedStr to aStr’s stringByAddingPercentEscapesUsingEncoding:(current application’s NSUTF8StringEncoding) return encodedStr as string end encodeURL |
Shaneからツッコミが入って「stringByAddingPercentEscapesUsingEncoding: はdeprecatedだよー」とのこと。こんな細かいところでAPIが入れ替わっているとはおそろしいところです。
AppleScript名:辞書.appで指定の単語を検索する v4 |
— Created 2017-09-19 by Takaaki Naganoya — Modified 2020-07-09 by Shane Stanley use AppleScript version "2.4" use scripting additions use framework "Foundation" set aText to text returned of (display dialog "Input keyword to search" default answer "") set encText to encodeURL(aText) of me activate application "Dictionary" set aURL to "dict://" & encText open location aURL on encodeURL(origStr as string) set aStr to current application’s NSString’s stringWithString:origStr set encodedStr to aStr’s stringByAddingPercentEncodingWithAllowedCharacters:(current application’s NSCharacterSet’s URLHostAllowedCharacterSet()) –It’s just that stringByAddingPercentEscapesUsingEncoding: is deprecated. return encodedStr as string end encodeURL |
More from my site
(Visited 56 times, 1 visits today)