6️⃣

S27. NotionTimeRecording

こちらも解説の節なので説明部分は省略します。
 
書籍のコラムにあるように、書籍執筆時までは NotionTimeRecorder という Ruby/Tk の GUI アプリを活用していました。しかし、2023年3月にボタン機能が公開され、コマンドライン版の NotionTimeRecording、GUI 版の NotionTimeRecorder アプリの役割はほぼ終了してしまいました。
 
ボタン機能を使った GTD テンプレートの記事はこちらにあります。
 
ボタンで実現することによって、Notion だけで完結することだけでなく、Notion API の一番大きな制約であるレート制限の問題もありません。日付の終了時刻が設定できないというデメリットを覆い隠すくらいメリットが大きく、現在はボタンでタスク管理をするようになっています。
 
唯一、書籍で説明した nt コマンドはさらに依存関係を一括設定するという機能のためにのみ利用しています。書籍の説明では単一タスクしか設定できていませんでしたが、以下のように変更することで taskA|taskB|taskC のような記述で依存関係を持った一連のタスクが一括登録できるようになっています。この部分のみここで補足しておきます。
case CMD_NAME when "nt" previous_id = nil NotionCache.instance.wait = 0.4 db = Database.find(DATABASE_ID) ARGV.join(" ").split("|").each do |title| page = db.create_child_page do |p, pp| pp["タスク名"] << title pp["前タスク"].relation = previous_id if previous_id end previous_id = page.id end exit # nt コマンドの時には Notion を開かない