hatena-atompubの外部仕様検討

hatena-atompubのインタフェース的には、Kamail V3みたいなのを想定してる。具体的には

  • アプリケーションの起動
    • hatena-atompub呼び出しで起動する
    • 起動時にエントリ一覧を取得する(かどうかconfigで指定できるようにするか?)
  • エントリの新規投稿
    • 起動後、もしくはエントリ一覧バッファでp押下で投稿用バッファを新規作成
    • はてな記法で内容記述後、C-c C-cで投稿用バッファの内容をコレクションURIに送信する
    • エントリ一覧を更新する
  • エントリ一覧の取得
    • 起動時(もしくはコマンド実行時)に現在のエントリ(1ページ目)を取得する
    • 取得したXMLから公開時刻、タイトル、リンクを編集してエントリ一覧バッファを作る

このバッファは読み取り専用とする

  • エントリの取得
    • エントリ一覧から取得したいエントリにカーソルを合わせてSPC押下
    • linkに指定されたメンバURIからXMLデータを取ってくる
    • contentにセットされたHTMLデータを内容表示バッファに出力する

このバッファは読み取り専用とする

      • このときの整形はどうするべきかな?
  • エントリの編集
    • エントリ一覧で編集したいエントリにカーソルを合わせてe押下、もしくは内容表示画面でe押下で編集開始。
    • カーソルのあるエントリ(または内容表示中)のメンバURIからXMLデータを取ってくる
    • hatena:syntaxを取得し、編集バッファに出力する。

ここにはてな記法で書かれた内容が表示される。

    • 編集後、C-c C-cで取得してきたメンバURIに対し編集済みデータをPUTして更新する
  • エントリの削除
    • エントリ一覧で削除したいエントリにカーソルを合わせてd押下、もしくは内容表示画面でd押下で削除実施
    • カーソルのあるエントリ(または内容表示中)のメンバURIにDELETEを送信する
    • エントリ一覧を更新する
  • アプリケーションの終了
    • エントリ一覧のバッファでq押下でアプリケーションを終了する

と、こういう感じだろうかと。ここで自分的に一番よくわかってないのが

  • エントリ一覧を更新した時に、linkとかの情報をどこに保存するのか
  • エントリ一覧でカーソルのあるエントリの情報をどうやって取得するのか

の2点なんだよなぁ…
Kamail V3の summary-view-mail-or-scroll とかを追っかけてお勉強させてもらおうかな。