Omnifocus2のiPad版も出て、ぼくの環境ではシームレスで使えるようになったので何だか環境整理をしたい気持ちになってきました。
Omnifocus2でも前バージョンと同様にAppleScriptに対応していて、割りと面白いカスタマイズが出来そうでした。
以前MacのOmnifocusの前バージョンで作っていたスクリプトでは、ノートブック名をプロジェクト名にしてタグをコンテキストにして、とかかなりガチガチなコードで無理やりくっつけていたのですが、自分のタスク管理の流れを見直すとそういう使い方ではどうも上手くいかないところがありました。
まず、やっぱりInboxへの収集を楽にしておきたいということもあって、リマインダが付いたノートやToDoが付いたノートを全てOmnifocusへ集合するようにしておくことにしました。
久しぶりにAppleScriptを触りながら昔書いたコードを参考にしつつ、一応動作するものが完成しました。
使い方
AppleScriptを実行すると、次のように動作します。
Evernoteの中にある、未終了のリマインダ付きノートと未完了のToDoのノート名をタイトル、ノートの内容をOmnifocusのノートに加えたタスクを作成します。
タスクを作成したあと、対象のノートへ移動が完了したことを示すタグを加えます。
タスクの期日は、リマインダ付ノートの場合はリマインダの期限となります。
それ以外は、実行時の日時が反映されます。
実行方法は、
SyncEvernote() of OmnifocusSyncEvernote
と呼び出すだけです。
ScriptオブジェクトOmnifocusSyncEvernote
内のプロパティを変更すると完了用のタグ名を変えることができます。
property completedTagName : "ここを自由に変更できます。初期値は、didFinishAddOF2"
動作の仕組みも、検索構文で検索したノートに対して実行しているだけなので、SyncEvernoteという関数内で実行しているノートの検索と検索結果からタスクを追加する内容をいじって、検索構文を変えた新しい関数を加えるなどすれば他のノートを追加することもできます。
on SyncEvernote()
set notes to findENNotes("ここに検索構文を入力、タグ名などでフィルタをかけて再度検索しないようにしておいた方が良い")
createTaskFromNotes(notes, {"ここにタグ名を入力、再度検索しないために利用"})
end SyncEvernote
ぼく自身も、もう少し手を加える予定です。
このスクリプトの動作が目的に合っているのであればぜひお使いください。
カスタマイズにつきましては、詳しくはソースコードをご覧ください。
Githubにアップしていますので、自由にお使いください。↓