前回はGrowlで通知するだけにとどまりましたが、最終的に処理するRubyのスクリプトを弄ることで如何様にも処理することが出来るようになります。
ということで、以前色々弄っていたEDAMTestの改造版でEvernoteにアップロードするようにしてみます( ´ ▽ ` )ノ
まずはAutomatorの全体の流れから。
前回の物からRubyで実行する前に適当に画像関係の処理を行うようにしています。
フォルダアクションの設定部分などについては前回を参照してください( ´ ▽ ` )ノ
今回、フォトストリームからEvernoteに投稿するために、画像編集的な動作を追加しています。
- Finder項目をコピー
- イメージをサイズ調整
先にコピーしているのは、フォトストリームの写真を直接変更するのが嫌だった為(サイズ調整のアクション追加するときに、コピーしますか?と聞かれます)で、とりあえずの作業ディレクトリにはデスクトップを使っています。
これで、元のファイルを変更せず、コピーしてリサイズ(iPhoneで撮影したものは流石にサイズ的に大きいので)したものをEvernoteに登録することが出来ます。
※ところで、これでアップロード後に確認すると、画像の回転関連が上手く出来なかったりするので、その辺りを上手くAutomatorで処理出来る方法をご存じでしたら教えてくださいorz
後処理でファイル削除もしたいのですが…シェル実行後に元のファイル情報を上手く取得出来ないので諦めてスクリプト側で削除するようにします(^_^;)
- シェルスクリプトを実行
次に本体部分になるのですが、少し大きくなったのでgithubに置きました。
前提条件としてOS-X LionでrubyからEvernoteをたたく環境を作っておく必要があります(^_^;)
こちらからソースコード(PictNote.rb)をダウンロード or コピペしてください。
設定可能なCONFIG部分がいくつかあるので、いきなりAutomatorにコピーするより、テキストエディタなどに一度コピーして編集してからAutomatorにコピーすることをオススメします。
設定項目について簡単に説明すると…
# タイトル設定時の時刻情報フォーマット (strffmt) $NoteTitleFormat = '%Y-%m-%d(%a) %H:%M:%S %Z'
これはコメントの通り、Evernoteに送信するノートのタイトルになります。とりあえず日付をベースにしていますが、適当な文字列を追加することも出来ます。
細かいフォーマットの詳細はMan page of STRFTIME
などを参照してください(^_^;)
# ノート情報登録成功時に通知をするか? $NotifySuccessed = true # ノート情報登録成功時に元ファイルを削除するか? $RemoveFileSuccessed = false
リアクション関連の設定で、前者はノート情報登録時にGrowlで通知をするかどうか(trueで通知する)。
後者は登録成功時に元ファイル(先ほどデスクトップにコピーしたファイル)を削除するかどうか(trueで削除する)。
これはお好みに合わせて( ´ ▽ ` )ノ
# EVERNOTE保存先ノートブック名(デフォルトで良ければコメントアウト) $ENStoreNotebookName = 'testnotebook' # EVERNOTE保存時設定タグ名(設定不要ならコメントアウト) $ENStoreTagName = [ 'testtag1', 'testtag2' ] # 設定したいタグ名を設定(複数可)
登録するノート名とタグ名の設定です。
単純に検索だけして見つかったら設定するので、あらかじめEvernote側で作成しておく必要があります。
どちらも不要であれば行丸ごとコメントアウト(先頭に#)してしまってください。
# EVERNOTE USERNAME $EvernoteUsername = 'username' # EVERNOTE PASSWORD $EvernotePassword = 'password' # EVERNOTE API Consumer Key $EvernoteConsumerKey = 'en-edamtest' # EVERNOTE API Consumer Key $EvernoteConsumerSecret = '0123456789abcdef' # EVERNOTE API Hostname $EvernoteHost = 'sandbox.evernote.com' #$EvernoteHost = 'www.evernote.com'
最後にEvernoteのユーザなどの設定になります。
USERNAME/PASSWORDはノート登録したいアカウントの物を。
ConsumerKeyについては、Evernoteのサイトで登録して取得することが出来ます。
※初期状態ではsandbox環境でしか使えないので、動作確認後にプロダクション環境で実行出来るようにサポートから更新依頼掛ける必要があります(^_^;)
API規約的に公開するのがまずそうな気がするので、とりあえず自分が取得したものは伏せさせて頂きます。
最後のEvernoteHostでsandbox環境とプロダクション環境(www〜)を切り替えて確認 or 実際のノート更新を使い分けます( ´ ▽ ` )ノ