2011年9月24日土曜日

Alfred3作目!Evernoteで日記をつけよう、Evernote Diary!


久々にAlfredネタです。
はじめてEvernoteと連携してみました。
下はAlfred Extention本体とAlfred持ってない人用のコード。

Evernote Diary - Alfred Extention


-- Alfred Extentionのままでサーセン
property nb : ""

on alfred_script(q)
set notetext to q as text
set t to do shell script "date +'%Y/%m/%d'"
set timeStr to time string of (current date)
set AppleScript's text item delimiters to ","
try
set tit to text item 1 of notetext
set txt to text item 2 of notetext
on error
set tit to ""
set txt to text item 1 of notetext
end try
set tit to "[" & timeStr & "] " & tit
set t to t & "の日記"

tell application "Evernote"
if nb = "" then
set foundNotes to find notes "intitle:\"" & t & "\""
set found to ((length of foundNotes) is not 0)
if not found then
set curnote to create note with html "" title t
tell curnote to append html "

" & tit & "

"
tell curnote to append text txt
tell curnote to append html ""
else
repeat with curnote in foundNotes
tell curnote to append html "

" & tit & "

"
tell curnote to append text txt
tell curnote to append html "
"
end repeat
end if
else
set foundNotes to find notes "notebook:\"" & nb & "\"" & " intitle:\"" & t & "\""
set found to ((length of foundNotes) is not 0)
if not found then
set curnote to create note with html "" title t notebook nb
tell curnote to append html "

" & tit & "

"
tell curnote to append text txt
tell curnote to append html ""
else
repeat with curnote in foundNotes
tell curnote to append html "

" & tit & "

"
tell curnote to append text txt
tell curnote to append html "
"
end repeat
end if
end if
end tell
do shell script "afplay /System/Library/Sounds/Hero.aiff"
end alfred_script


名前のとおり、Evernoteに日記を書くためのスクリプトです。
最近Twitterでボヤキっぱなしなので、自粛するために作りました。
それも「つぶやき」なのかもしれませんが、脳内だだ漏れなのも気持ち悪いですしね。
ただのボヤキも念のため後から読み返せるようにしておこう、というスクリプト。

触りはこのくらいにして、さっそく機能を紹介します。


例えるなら、お一人様Twitter



Evernoteに「ノート名=日付」のノートを作成します。
ノートの内容は「小見出し=時間(と入力したタイトル)、本文=入力したテキスト」です。
同日に書き込んだ内容は、その日の日付のノートに追記されていきます。
ノートの内容は、ほとんどTwitterのログそのものです。見た目はこんな感じ。

1

かなり質素ですが、お一人様Twitterならこれでも問題ないです。
背景色とか文字色くらいなら、スクリプトを編集すれば簡単に変更できると思います。
以下、簡単に設定や使いかたをメモ。


設定



ノートを作成するノートブックを選べるようにしています。
一行目の「property nb : ""」にノートブック名を記入してください。
何も書かない場合、デフォルトノートブックを選択します。
まだノートブックが無い場合、新しくそのノートブックを作成します。
「デフォルトでいいから空欄でいいや」という人でも、デフォルトノートブックの名前を記入すると、ほんのわずか実行速度が上がります。

あと、今回はGrowlやめて音を鳴らすようにしました。
あまりに一瞬の出来事だしエラーも吐きようがないので、確認のためだけ。
実行したらリアクション返すのは、アプリとして割と大事な気がします。


使いかた



Alfredで「ed "テキスト"」と記入します。
「ed」の後に入力したテキストがノート内の文章となります。

例1) 2011/09/23 13:00:00に「ed ほげ」と入力

2

入力するテキストを「,」で区切ることで、小見出しにタイトルを入力できます。
例2) 例1と同日の14:00:00に「ed hoge,ほげほげ」と入力

3

このくらいですね。超簡単仕様。


「このスクリプトどっかで見たぞ?」←正解



多分そう感じている人が大多数でしょう。そのとおり、今回も安定の9割コピペ。
この記事とこの記事を合わせると、Evernote Diaryができちゃったよ!
いつもホントにありがとうございます。

Evernote Daily Diary - Veritrope


[Mac][Evernote] PowerPackユーザー限定。Alfredから最速でEvernoteにメモできるExtension『addev』 - b2log/p


b2logさんのコードを大枠に、Veritropeさんのコードをペタペタ。
少し前に見た「Launcher」というMacのキーボードランチャでEvernoteに日記を書くというネタを、Alfredでやってみただけ。
Alfredだと一動作少ないのがいいですね。


あとがき



Evernote Diaryを作って感じたこと。
主題はEvernoteにノートを作る場合のパラメータについて。
Evernoteに自前で作りたいノートって、割とたくさんあるんじゃね?ってこと。
で、それを一つのコマンドから作れたら素敵じゃね?ってこと。

日記、長文、タスク、ブログのネタ、買いものリスト。
Evernoteに作りたいノートは、すぐ思いつくレベルでもこのくらいはある。
そして、それらを書くときのEvernoteのノートのスタイルは様々。
今回の日記スタイルだったり、チェックボックスがついたタスクだったり。
長文だとAlfredでは書けないし、ウィンドウを出してじっくり書きたかったりする。

これらを一つのスクリプトから選んで実行できるといいなぁ、と思った。
Alfredから起動するスクリプトは同じだけど、パラメータで分別する。
パラメータに「diary」と入れたら、今回の日記スタイルでノートを作る。
パラメータに「task」と入れたら、チェックボックス付きノートを作る。
全部バラバラにスクリプト書いてAlfredに登録しても結果は同じだけど、そんなにコマンド覚えられないしね。

けど悪い点もある。Alfred Extentionにめちゃくちゃ長いコードを書く必要がある。

対策1:スタイル別に小分けにして、外部スクリプトにしちゃう。
スタイルごとに「evernote_diary.scpt」とか「evernote_task.scpt」に分けちゃう。
本体はrun scriptで外部を実行するだけにすれば、Alfred Extention自体は短くなる。
けど、これだとAlfredでエクスポート出来ない。それはコンセプト的に本末転倒。

対策2:Alfredでエクスポート出来る形で外部スクリプトを使う。
1と矛盾するようだけど、方法はある。詳しくは長くなるのでまた今度。
ザックリ書くと、外部スクリプトを「テキスト形式」で保存しておく。
一手間かければ外部スクリプトを読み込んだコードを作れるようになる、はず。。。
話脱線するけど、これはAlfredだけの話じゃなくて、全てのスクリプトでやってみたい。
個人的にはそのほうがスクリプト管理しやすいと思うし、ブログに貼るときも簡単なので、そのうちスクリプトの管理自体をごっそり変えてみるつもり。

対策3:これ、そもそもアプリじゃね?
スクリプトとアプリの境界はよく分かんないけど、なんとなく。
それに正直、Alfredでやる意味が薄いかなぁ。出来るに越したことはないけど。
ホットキー1つで実行できれば、速さは確実にランチャより上だし。
本当はEvernote Trunkにこういうの期待してたんだけど、どうも違ったみたいだし・・・

当面は対策2に向けて爆進中です。

1 件のコメント:

  1. Hello, I enjoy reading all of your post. I like
    to write a little comment to support you.

    返信削除