MacのEvernoteでインポートフォルダ機能を使う方法

Macユーザーではないので寄稿してもらった

先日こんな記事を書きました。 デスクトップにEvernoteのInboxを作成しよう – Punksteady 自分はWin派なのでMacのことはさっぱり。似たようなことができるのかという質問を過去に何度か受けたことがあります。しかしはっきりした答えが出せないでいたのです。そして、今回の記事を受けて心優しいMacユーザーの人が寄稿をしてくれました。その名も@knk_nさん。ありがとうございます。早速紹介していこうと思います。

Macに「インポートフォルダ」機能はない

今回、@ika621さんのブログに寄稿させていただきます。@knk_nと申します。
Lemonade Ice CreamにてEvernote、Mac、iPhoneをメインに面白かったものをまとめるぐらいの軽い気分でちょこちょこ記事を書いています。 「いつか有名ブログに寄稿ができるぐらいのブロガーになれたらいいな」と思っていましたがこんなに早くその機会をいただけるとは @ika621さん、ありがとうございます。「Mac版の記事を寄稿してくれる人募集中~なんてな。」に食いついてしまいました。

AppleScriptを使ってそれっぽいことはできる

Macでのフォルダインポートは本当にできないのか。Googleで調べたところ公式でこそサポートされていないものの方法はあるようです。 AppleScript 使って特定のフォルダ配下の写真をまとめてインポートする – TitaniumMobile勉強記    
このAppleScriptを使ったところ、写真に関わらず様々なファイルをフォルダインポートのようにEvernoteに取り込むことができました。しかし、問題点がいくつかありました。 ①フォルダが選べない
「choose folder」という部分でフォルダ選択画面が表示されるようなのですが毎回選択するのメンドクサイ。どうせならスクリプトファイルの中で選んでおいて、スクリプトを起動するたびに選択されたフォルダから取り込んで欲しい。 ②ファイル名をノートタイトルに
上のスクリプトをそのまま使うとノートタイトルが「import picture」になるのですが、ファイル名をそのまま使いたい。拡張子も取り除ければなお良し。 ③ノートブック名を選択可能に
これはデフォルトノートブックのままでもいいかなと思ったのですが、選べるならば選びたいだけです。 ④テキストやHTMLファイルは独特の表記になってほしい
このスクリプトではファイルを「添付ファイルという形」でEvernoteに格納することになっています。テキストファイルやHTMLファイルをEvernoteのノートブックにドラッグした場合、テキストファイルの場合は添付ファイルという形ではなく、そのままノートのテキストになります。HTMLファイルの場合はブラウザで見るような形式になります。 ちなみに当記事のHTMLファイルをEvernoteに入れるとこうなります。
「作成途中のファイルがそのまま格納される方がいいじゃないか」という人もいると思いますが「ノートブックにドラッグ」した場合と同じような挙動になるようにするにはここも改良点になるというだけです。

フォルダインポートを可能にするAppleScript

上記の問題点を元に、AppleScript改良しました。AppleScriptをいじるのは初めてだったのですが、人間やればできるもんですね。以下参照リンクです。 そんなこんなで出来上がったのがこちらのスクリプト。
---------------------------------------------##
property nb : "000_Inbox"
-- ※ Evernoteのノートブック名を記述(例は000_Inbox)
property evernoteInboxFolder : "Macintosh HD:Users:UserName:Desktop:ENInbox"
-- ※ インポートフォルダを絶対パスで記述(例はUserName) 区切りは「:」(セミコロン)を使うこと set aFolder to evernoteInboxFolder as alias
set folderList to {}
set f_r to a reference to folderList
tell application "Finder" set folderList to entire contents of aFolder as alias list
end tell repeat with i in f_r set j to contents of i set aInfo to info for j set aF to folder of aInfo try set aInfo to info for j set aF to folder of aInfo on error set aF to false end try set a to j set aStr to a as string set aStr to aStr as Unicode text set aRes1 to retFileNameWithoutExt(aStr) of me set aRes2 to getLastLayerOfDirData(aRes1) of me importToEN(j, aRes2) of me
end repeat on retFileNameWithoutExt(fileNameStr) set fLen to length of fileNameStr set revText to (reverse of (characters of fileNameStr)) as string set anOffset to offset of "." in revText set fRes to text 1 thru (fLen - anOffset) of fileNameStr return fRes
end retFileNameWithoutExt on importToEN(aFile, aRes) tell application "Evernote" set curnote to create note title aRes notebook nb with text "" attachments aFile end tell
end importToEN on getLastLayerOfDirData(aData) set aColon to ":" as Unicode text copy aData to bData if bData ends with ":" then set bData to text 1 thru -2 of bData end if set aLen to length of bData set rData to reverse of (characters of bData) set rData to rData as string set dPos to offset of aColon in rData set resData to text (aLen - dPos + 2) thru -1 of bData return resData
end getLastLayerOfDirData
----------------------------------------------##
上のスクリプトをAppleScript Editorにコピペ。※(米印)の部分は各自で変えて保存します。ファイルフォーマットはアプリケーションでいいでしょう。 あとはアプリケーションを起動すればスクリプトファイル内で指定したインポートフォルダのファイルが同じくスクリプトファイル内で指定したEvernoteに取り込まれるというわけです。
また、@ika621さんの記事にて「Dropboxとの連携」の話がありましたが、インポートフォルダ名が選べるのでこちらでも可能です。

改良点

上記の問題点のうち①~③は、なんとかクリアできました。問題は④。
ファイルの中身自体をノートテキストに変換するも日本語の文字化けで苦労してます。
MacのQuickLookでも日本語は基本的に非対応なので文字化けしてしまうのですが開いたファイル自体に問題はないようですので人によっては無視してもいいレベルだと思います。「やり方わかっちゃった」なんて人は是非教えてください。
クリアできたらまた紹介したいと思います。また、このスクリプトはフォルダが1つしか選べません。フォルダ別にスクリプトファイルを作ったり、同じ内容を2回記述することで実用は可能です。このあたりにも改良の余地を感じました。

おわりに

ぶっちゃけると正直私はあまりインポートフォルダ機能を活用していません。
今更なんだと思うかもしれませんが、ノートブックにファイルをドラッグするのをあまりめんどうだと感じていませんでした。
スクリプトファイルも@ika621さんの記事を読んでから作ったものです。といってもほとんどコピペですが。 Evernoteに超絶簡単にメモするスクリプト その3で@goryugoさんも言っていましたがこういったスクリプトは「軽い気持ちで、ブログとかに発表しちゃうと、もっと多くの人が幸せになれる」のです。よろしければ使ってみてください。
私もこの機会にインポートフォルダ機能を使ってみようと思います。 公式でのサポートがない以上このようなやり方しかできなかったのですが@ika621さんの求める内容になっていれば幸いです。 <

まとめ(ika621)

寄稿してもらいましたが、やっぱりMacのことはさっぱり分かりませんでしたw
しかし、自分のブログは、「たった一人でも役にたったって思ってもらえる人がいたらそれだけでブログを書く価値がある」というスタンスで運営しているので寄稿という形で投稿しました。
寄稿していただいた@knk_nさん、どうもありがとうございました。
なんとこの記事、1日もかからずに執筆してもらいました。仕事が速い!すごいな~という印象を受けました。
今後ともよろしくお願いします。

2 COMMENTS

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です