日々適当

hibitekitou

modo がAppleScriptをサポートしたらしい

cg |2012-08-25


modo 601 sp3 にてAppleScriptをサポートしたことが書かれていました。
スクリプトのドキュメントには、上図のように run command しか書かれていませんが、modoに対して、modoのコマンドを投げることが出来るわけで、うーん、どんな使い方が考えられるでしょうか。

例えば

tell application "modo"
--activate
run command "script.run \"macro.scriptservice:19601440010:macro\""
run command "scene.saveAs /saveDirectory/a.lxo $LXOB false"
quit
end tell

と書いておけば、modoを起動していなくても、modoが起動し球を作成しsaveDirectoryにa.lxoというファイル名で保存した上で終了する、という事が出来るわけで、適当なバッチ処理に使えそうです。
たぶん真価を発揮するのは、他のアプリケーションと連携させるような場合でしょうね。具体的にどんな場合かは有用なのがぱっとは思いつきませんが(^^;

ま、その前にスクリプトをおぼえないとというのはありますな。
コメント ( 0 )|Trackback ( )

作業時間を知りたいんだ

mac |2012-08-25
iCalに、この時間はこの仕事をしていました、って記録を付けています。



この図の「新規イベント」となっている部分に仕事名を入れて、カレンダー(「ホーム」になっているところ)を仕事記録専用のカレンダーにして、開始・終了時刻を入れる(終日にはしない)。こんなルールで記録しておけば、まぁ、大ざっぱにでもそのお仕事に何時間費やしたか分かるというものです。
ところが、いざ何時間掛かったという数字を出そうとする時、数日程度の仕事なら自分で数えてもいいんですけど、長めのスパンのだとやってられません。

ってか、今、久しぶりにそんな長めのスパンの仕事しててですね、で、面倒だな、と。

というわけで、AppleScript書きました。その仕事の合計時間が分かればいいので、もう非常に大ざっぱなスクリプトです。

set dStartS to "2012/7/19 0:00:00" --集計の開始時間
set dEndS to "2012/8/25 0:00:00" --集計の終了時間
set calName to "仕事" --カレンダー名
set summaryName to "仕事名" --仕事名

set dStart to date dStartS
set dEnd to date dEndS

tell application "Calendar"
set evnList to every event of calendar calName whose (start date ≥ dStart) and (end date ≤ dEnd)
set workTime to 0
repeat with evn in evnList
if (summary of evn) = summaryName then
set eDuration to (end date of evn) - (start date of evn)
set workTime to workTime + eDuration
end if
end repeat
end tell

display dialog calName & "/" & summaryName & ":" & ((workTime / 60 / 60) as string) & "時間"

こんな感じ。単純に該当する期間内のイベントを総ざらいして、イベント名が該当している物の開始時間と終了時間から作業時間を割り出して、どんどん足していく、という内容です。雑。

ともあれ、これで目視で数えるよりかはなんぼか信頼できる値が取得できるというものです。

余談ながら、このスクリプトを書きだす時、

tell application "iCal"
end tell

って書いたんですよね。で、スクリプトエディタのコンパイルボタンを押したら、iCal って部分が Calendar に自動的に書き換えられちゃいました。そいえば、iCal って名前はきえちゃったのね、Mountain Lion から。
コメント ( 2 )|Trackback ( )
  ・