Pages

2009-02-18

Spotlightで特定の属性を持つファイルを検索する

例えば、OMタグを持つファイルやフォルダを集めたいときは“kOMUserTags属性を持つ”みたいな感じの式を書けばいいんだけど、これがなかなか書けなかった。

結局、kOMUserTags == '*'って書いてMDQueryやNSMetadataQueryに渡せばいいみたい。最初はkOMUserTags != ''って書いて上手く行かなかったんだけど、考えてみれば当然ですね。

2009-02-10

ニコ動からDLした動画に自動でタグ付け:MetaCompN

iphloxの情報整理ノートのphloxさんが、ニコニコ動画からダウンロードした動画ファイルに自動でOpenMetaタグを付けてくれるAppleScriptドロップレットを公開しています。ニコニコ動画上で付けられているタグをそのままローカルのファイルにもOMタグとして付与するようで、AppleScriptからSafariとomtool(最近openmetaという紛らわしい名前に変わりましたが、名前を変えれば使えます)を操作することで実現しているようです

というわけでさっそく試してみました。テストに使ったのは【帰ってきた】 椎野茂さんの毒舌実況4回の表。ニコニコ動画の動画をダウンロードするツールは色々あるようですが、私はNNDDというAIRアプリケーションを使っています。NNDDでダウンロードしたflvファイルはファイル名の後ろに動画IDなどがくっついているので、それらを削って動画タイトルだけのファイル名にします。

で、そのファイルをMetaCompNにドロップ。するとタグの取得作業が行われるのでしばらく待つと作業完了。チェックしてみたら、ちゃんとタグが付いてくれています。

MetaCompN Screenshot

生のflvファイルじゃなくてm4vなどに変換したファイルでもファイル名さえ合っていれば使えるようです。なかなか面白いのでぜひ試してみてはどうでしょうか。

2009-02-06

QSBプラグインの作り方

Google Quick Search Boxプラグインの作り方。意外とまとまった情報があまりなかったので個人的メモを兼ねて。QSBのプロジェクトページからQSB本体のソースコードが手に入る。

まず、プラグイン(拡張子.hgsのCocoaバンドル)の中心となるのはHGSExtensionのサブクラス。ただしHGSExtensionをそのままサブクラス化するのではなく、すでに種類別にいくつか用意されているHGSExtensionのサブクラスをさらにサブクラス化して実装する。例えば、QSBでは選択したアイテムに対してアクションを実行することができるけど、このアクションを追加したいときはHGSActionっていうHGSExtensionのサブクラスをさらに拡張すればいい(QSBOpenMetaもローカルファイルに対するアクションだから、HGSExtension > HGSAction > QSBOpenMetaのようになっている)。サブクラスで実装しなければならない諸々のメソッド等はソースコードにコメントがあるし、デフォルトで組み込まれてるプラグインのコードがわかりやすいから参考になる。ちなみにアクション(HGSActionを継承)の場合、最低限-performActionWithInfo:-doesActionApplyTo:の2つを実装すれば大丈夫。前者は実際にアクションを実行するメソッドで、後者はユーザの選択したアイテムがアクションの処理できるものかどうかを判定するもの。

サブクラスを実装したら、Info.plistを編集。HGSExtensionsってキーのArrayを追加して、そこに実装したHGSExtensionサブクラスの数だけDictionaryを追加していく。下はアクションを実装したときにDIctionaryで設定する内容。

HGSActionDirectObjectTypes
アクションが対象とするオブジェクトの種類。QSBOpenMetaの場合はローカルファイル限定だから、fileとした。
HGSExtensionClass
アクションを実装したHGSActionのサブクラス名
HGSExtensionIdentifier
そのアクションの識別子。バンドルの識別子ではない。プラグイン内で複数のHGSExtensionを実装した場合はそれぞれに違う識別子を与える。
HGSExtensionPoint
拡張の種類。アクションの場合はHGSExtensionPoint
HGSExtensionUserVisibleName
実際に表示される名前。"Add OpenMeta Tag"みたいなの。

ざっとこんな感じで、別段難しいような所はないはず。ドキュメントが用意されてないので、もしかしたら間違ってるところがあるかもしれない。Developer Previewを名乗るならドキュメントぐらい用意してくれてもいいのに…。

2009-02-05

OMにおける最近使ったタグ

Tagitでタグを付けたり検索したりすると、パネルのクラウドっぽい感じのところにそのタグが追加されます。このタグはcom.openmeta.shared.plistっていうplistファイルに記録されてるってのはもう既に色々なところで耳にされた方も多いと思います。このデータはなにもTagit専用のものではなくて、他のOM対応アプリからも利用されます。QSBOpenMetaやOMSavePanelのタグ補完もこれを使ってますし、OMWizardのタグ一覧もこの内容をそのまま表示しています。

ところが、このcom.openmeta.shared.plistには最近使ったタグが200件までしか記録されません。「最近」だから件数に制限があるのは当たり前で、普段はそれで不便なことはありません。

ところが、OMWizardの場合は話は別です。タグ検索フィールドを廃止したので、OMWでファイルを検索するにはリストからタグを選ぶしかありませんが、タグリストには200件しか表示されないのでそれより古いタグは検索することができません(表示されないのはリストの最左カラムで、それより右のカラムでは古いタグも表示されます)。

これを解決しようとしたら、やっぱり何らかの方法で全てのタグを集めなきゃ行けないんだけど、毎回それはそれで大変。どうしたらいいものか…

2009-02-04

保存パネル拡張 for OpenMeta:OMSavePanel


omsavepanel
Originally uploaded by s.take

先日のポストでメタデータは保存パネルで入力するのが良いって書いた。で、DFXが対応予定だから期待するって書いたけど、OMのために$35も払うのもバカバカしい。ということでヤケになって保存パネルでOMメタデータを入力できるようにするSIMBLプラグインを作ってみた。


スクリーンショットの通り、OMSavePanelをインストールすると保存パネルの下にタグと星レーティングを入力するエリアが現れるので、ここに入力するとOMのメタデータとして保存される。


SIMBLなのでCocoaアプリでしか使えない上、全てのアプリで上手く動くとも限らない。一応、Safari、Mail、プレビュー、テキストディット、CotEditorではうまく動いた。

DOWNLOAD


このプラグインはMac OS X 10.5上でのみ動作します。Mac OS X 10.6を使用している場合は、Save Panel Extenderを使用してください。

This plugin only works on Mac OS X 10.5. If you are using Mac OS X 10.6, use Save Panel Extender.