Aperture 最大の不満がこの iPhoto にあった機能がないこと(結合はあるのに!!)。複数のカメラで撮った写真を日付毎に分けてるので、読み込み時のプロジェクト分割だと同じ日付で複数のプロジェクトが出来ちゃうし、かと言って手動で分割はダルくてやってらんない。
とゆーことで、AppleScript Language Guide や Aperture 3 AppleScript Referenceを見ながら AppleScript と格闘してたらそれっぽいものが出来上がったのでメモ。でももっと上手い解決方法があったら教えて偉い人!
(2011/8/26 追記)速くできるんじゃないか、とちょっと頑張ってみたバージョンはこちら
適当に写真を選択した状態でこのスクリプトを実行すると
- 撮影日のプロジェクト(YYYY年MM月DD日)が無かったら作成
- 写真を撮影日のプロジェクトに移動
とゆー感じに動きます、多分…。 AppleScript はよくわからないのですが、撮影日のプロジェクトはフォルダの配下にあっても認識するみたいなので、プロジェクト作成後は適当な場所に動かしてもプロジェクトを作ることはないみたい…?
ライブラリにあるプロジェクトを全部なめるのでライブラリがデカければデカいほど遅くなるのはお約束 :) 。というかもうちょっとスマートに書けないのかなー
tell application "Aperture" set imageSel to (get selection) if imageSel is {} then error "Please select an image." else repeat with i from 1 to count of imageSel tell (item i of imageSel) set imgy to round (value of EXIF tag "CaptureYear") as number set imgm to round (value of EXIF tag "CaptureMonthOfYear") as number set imgd to round (value of EXIF tag "CaptureDayOfMonth") as number if length of (imgm as string) = 1 then set imgm to "0" & imgm end if if length of (imgd as string) = 1 then set imgd to "0" & imgd end if set projname to (imgy as string) & "年" & (imgm as string) & "月" & (imgd as string) & "日" end tell tell library 1 set flagProj to false set projSel to get name of every project repeat with existProj in projSel if contents of existProj is equal to projname then set flagProj to true exit repeat end if end repeat if flagProj is false then make new project with properties {name:projname} end if end tell move item i of imageSel to project projname end repeat end if end tell