Archive for the 'MagicKit' Category

2017/10/25 MagicKitで指定ファイルのUTI情報を取得

オープンソースのFramework「MagicKit」(By Aidan Steele)を呼び出して、指定ファイルのUTI(Uniform Type Identifiers)の情報を取得するAppleScriptです。

本Scriptの実行にはGithub上のプロジェクトをダウンロードして各自でXcode上でFrameworkをビルドし、MagicKit.frameworkを~/Library/Frameworksフォルダ以下にインストールする必要があります。

ちょうどUTIについてこういうツールがないかと思っていたところでした(BridgePlusがなくても調べられることがのぞましい)。指定ファイルのUTIやMIME Typeを調べられるのは便利です。

とくに、NSDataから直接UTIを得られる「magicForData:」 メソッドがとても便利そうで、コレが使いたかったのでテストしてみた次第です(まだそこまで試してないですけれど)。

本当のところは、UTIの文字列(例:”public.image”)を与えると、その下位に所属するUTIの一覧をArrayとかlistとかで返してくれるAPIがあるとよいのですが、、、うまく探しきれていないだけで「存在しないのはおかしい」感じではあります。

AppleScriptでも、choose file of typeコマンドでUTIの世界を垣間見ることはありますが、その階層構造を調べられないのは少々ストレスが溜まるところです。

AppleScript名:MagicKitで指定ファイルのUTI情報を取得
– Created 2017-10-25 by Takaaki Naganoya
– 2017 Piyomaru Software
use AppleScript version “2.4″
use scripting additions
use framework “Foundation”
use framework “MagicKit”
–https://github.com/aidansteele/magickit
–http://piyocast.com/as/archives/4922

set aFile to POSIX path of (choose file)
set aRes to current application’s GEMagicKit’s magicForFileAtPath:aFile
–>  (GEMagicResult) ISO Media, Apple QuickTime movie

set aMime to (aRes’s mimeType()) as string
–>  ”video/quicktime; charset=binary”

set utiList to (aRes’s uniformTypeHierarchy()) as list
–>  {”com.apple.quicktime-movie”, “public.movie”, “public.audiovisual-content”, “public.data”, “public.content”, “public.item”}

set aDesc to (aRes’s |description|()) as string
–>  ”ISO Media, Apple QuickTime movie”

★Click Here to Open This Script