それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Evernoteにファイルを投入するコマンド

Evernoteにファイルをまとめて放り込みたい。

コマンドでまとめてEvernoteに放り込みたい。APIを経由すると毎年〜キーを更新しなくちゃいけないので面倒くさい

なので、Apple Script ( の JavaScript ) でやろうと思う ( Windows な人は同じ目的で enscript.exe が使えます)

JavaScriptで自動化するときのポイント

コマンドを使って起動するときは

#!/usr/bin/env osascript -l JavaScript

ObjC.import('stdlib')  
/// ここがmain関数に相当する
function run( argv ){
  console.log("Hello World")
}

Evernote に新規ノートを作ってファイルを貼り付け

Evernoteに新規ノートを作ってファイルを貼り付ける場合は、次のようにする。

  var name = 'no title'
  var file_path = '/Users/takuya./.bashrc'
  var app = Application("Evernote")
  var notebooks = app.notebooks
  var defautNoteBook = Array.apply(null, notebooks).find(function(e){ return e.default })
  var note = app. createNote({
    title: name,
    notebook: defautNoteBook,
    withText : name
  })
  note.append({ attachment: Path(file_path) })
  app.activate()

NSString とFileManagerを使ってPATHの存在チェックなど

realpath と file_exist? をやって引数チェックする

file2evernote.js

ObjC.import('Cocoa')
nsStr = $.NSString.alloc.initWithUTF8String(file_path);
file_path = nsStr.stringByStandardizingPath.UTF8String;
mgr.fileExistsAtPath(e)

これをまとめてコマンドにする

引数で受け取ったファイルを一覧を処理してEvernoteに貼り付ける。

gist.github.com

使い方

./file2evernote.js *.jpg