40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

WindowsでもGoogleReaderのスターの付いたエントリ→Evernoteの連携出来ないか考えてみた

前に複数のURLの情報を読み取って一気にEvernoteにクリップするAppleScriptという内容を書いていたのをベースにして、会社のブログの方でGoogleReaderでスターを付けたエントリをまとめてEvernoteへ自動クリッピング(ただしMac限定)と書いたらこの類のEvernoteネタは食付きが良いみたいなので、調子にのってWindows環境でも同様のことが出きないかこの週末にちょっと考えてみました。

最初は、Microsoft.XMLHTTPを使おうかと思ったけど、取得した結果から、欲しい箇所だけ抜き取るために正規表現を駆使して・・というのが考えただけで大変そうだったのでちょっと調べてみたらWSHによるDOMの利用についてや、 WSH/JScriptで,XMLを読み込みする (コマンドラインからDOM操作) - 主に言語とシステム開発に関して WSH で HTML を XPath したいんじゃあああぁぁ - Wisteria::Diaryという記述を見つけて、WSHからDOM利用できることがわかったので、こんな感じのスクリプトを書いてみました。

var XML = 'ここにGoogleReaderのスターの該当Atomフィードを指定';
var objDOM = WScript.CreateObject('MSXML2.DOMDocument');
objDOM.async = false;
objDOM.load(XML);
var NodeList = objDOM.selectNodes('//updated');
for (var i=0;i<NodeList.length;i++){
  WScript.Echo(NodeList[i].text);
  WScript.Echo(NodeList[i].nextSibling.getAttribute('href'));
}

こうすると、GoogleReaderでスターを付けたエントリがいつ更新されたかという日付の情報と、そのエントリ元のURLの情報が取得出来ることはわかったので、あとはWindows版のEvernoteクライアントにURLを渡せば自動的に追加できるんじゃないかと思ってクライアントの機能をちょっと調べてみた

Windows版のEvernoteクライアントをインストールすると、一緒にENScript.exeというのもコピーされてきて、これはコマンドライン版のソフトのようだけど、例えば
ENScript.exe CreateNote -s c:\testdata.txt -u EvernoteのユーザID -p Evernoteのログインする時のパスワード
という感じで、cドライブ直下にtestdata.txtというのがあればそこからテキスト情報を読み取って自動的にevernoteに追加してくれるので、この-sのオプションにURLを渡せば良いのかと思ったけど、情報のソースとして指定できるファイル形式は単純なテキスト形式しか受け付けてくれないみたい・・

どっかのブログで読んだ記憶があるけどEvernoteってMac版とWindows版とで機能の差があるみたいで、Mac版と同じようなやり方ではどうも実現出来なさそうだなぁ〜

なので、ちょっとやり方変えて、GoogleReaderでスターを付けたエントリの本文の情報を取得して、CDOMessageの機能(CDOMessageは@IT:Windows TIPS -- Tips:Windows標準機能とWSHを使ってメールを送信するが参考になる)を使ってメール経由でEvernoteに投稿するというやり方で実装する方向で考えなおすことにした。