Evernoteの選択中のNoteに添付されているattachmentファイル(おそらく画像)をデスクトップに書き出すAppleScriptです。
# Evernoteはバージョン10でAppleScriptサポートが削除されてしまったので、本Scriptはバージョン10以降のEvernoteでは動作しません
書き出す添付ファイルのファイル名はAppleScript経由でオリジナルのものを求めていますが、オリジナルのファイル名に「missing value」を返してくるものもあるので、その場合にはUUIDを割り振っています。
また、MIME TYPEを調査しててきとーに割り振っていますが、すべてのパターンに対処するものではありません。
正直なところ、Evernoteはあまりできのよくないアプリケーションです。同様の機能を提供するアプリケーションやサービスに、もっと出来のいいものがたくさんあります。調子に乗ってAppleScriptから大量のNoteを自動作成すると、デバイス間のデータのシンクロが大量に発生してデータ転送量が増え、利用料金が増えていきます。
# 自分は、MacJournalやmacOS標準装備のメモ(Notes.app)をよく使っています
AppleScript対応機能も動くんだか動かないんだかよくわからないものが多く、挙げ句の果てには間違った命令を実行するとアプリケーションまるごとクラッシュしたりします。
AppleScriptからEvernoteをコントロールしようとすると、
(1)AppleScript用語辞書の範囲内で操作
(2)GUI Scirptingを用いてGUI操作
(3)REST API経由で操作
の3つの方法があるでしょう。Evernoteの(1)の出来がよくないので、(3)について少々調べておくぐらいでしょうか。ただ、調査に無限に時間がかかりそうなので、結局(2)に落ち着きそうな、、、、
AppleScript名:選択中のNoteに添付されているattachmentのファイルをデスクトップに書き出す |
set dtPath to (path to desktop folder) as string
tell application "Evernote" set aSel to selection if aSel = {} then return set aaSel to first item of aSel tell aaSel set aList to every attachment repeat with i in aList set aFN to (filename of i) if aFN = missing value then –ファイル名が添付画像ファイルについていなかった場合の対策 set aFN to (do shell script "uuidgen") & retExtFromEvernoteMIME(mime of i) of me end if set tmpPath to dtPath & aFN try write i to file tmpPath on error erM log erM end try end repeat end tell end tell –EvernoteのNoteに添付した画像のMIME TYPEから拡張子を判定する(とりあえず版) on retExtFromEvernoteMIME(aMime) if aMime = "image/jpeg" then return ".jpg" else if aMime = "image/png" then return ".png" else if aMime = "application/pdf" then return ".pdf" else return ".dat" end if end retExtFromEvernoteMIME |