Scalaではてダ用のコマンドラインツールを作りました。

Scalaはてなダイアリーの記事をコマンドラインから管理できるツールを作りました。
Scalaなのでjavaがあれば使えます。
付属のhateda.elを使えばEmacsからも使えます。


今のところ下書きAPIに対応しています。
というか下書きだけ管理できれば十分かなあと思っています。
あと下書きの公開はサポートしてません。エントリ公開前の見た目の確認はWebプレビューでやったほういいと思うので。

ダウンロード

scala-hateda.jarはgithubの右のほうにあるダウンロードボタンから
https://github.com/tototoshi/hatenacala


hateda.elはこれ
https://github.com/tototoshi/hatenacala/raw/master/hateda.el

インストール方法

jarは実行可能になっています。
次のようなスクリプトを作ってパスを通し、コマンドとして使えます。
スクリプト名は'hateda'とでもしてください。
私はjar、スクリプトともに~/binに置いています。

   #!/bin/sh
   java -Dhatena.username=xxxxxxx -Dhatena.password=yyyyyyy -jar ~/bin/hateda-scala_x.x.x-assembly-x.x.jar $@


xxxxxxxは はてなダイアリーのアカウント名
yyyyyyyは はてなダイアリーのパスワード です

コマンド

hateda draft list

現在下書き保存しているエントリの一覧が表示されます。
表示される項目は、id、タイトル、日時です。

hateda draft get 'id'

idで指定した下書きエントリを表示します。

hateda draft add 'filename'

指定したファイルを下書き保存します。
ファイルの一行目がエントリ名になります。

hateda draft update 'id' 'filename'

idで指定した下書きエントリを指定したファイルで更新(上書き)します。

hateda draft rm 'id'

idで指定した下書きエントリを削除します。

Emacsから使う

付属のhateda.elでEmacsから使えるようになります。
動作にはanythingが必要です。

設定

まずhateda.elをロードしたあと、
次のようにhatedaコマンドのパスと専用のディレクトリを指定して下さい。

(setq hateda-executable "~/bin/hateda"
      hateda-draft-dir "~/hateda/")
;; hateda-draft-dirは下書きをローカルで管理するのに使うディレクトリ

Emacsコマンド

主に次のようなコマンドがあります。

anything-hateda

現在下書き保存しているエントリの一覧が表示されます。
表示される項目は、id、タイトル、日時です。
アクションとしてOpen, Deleteが選べます。


Openアクションでは選択した下書きエントリを開きます。
バッファ名は「id-title」となり、
そのままC-x C-sを押せばhateda-draft-dirで指定したディレクトリ内に保存されます
(注)ファイル名は変えないでください。


Deleteアクションでは選択した下書きエントリを削除します。

hateda-draft-add-this-buffer

現在のバッファを下書きエントリに追加します。

hateda-draft-update

下書きエントリを現在のバッファの内容で更新します。

補足

  • ネットワーク越しなのでたまに重いです。
  • Scalaで書いたりJavaのライブラリとかもまとめてjarにしたら10M近くなったw
  • Scala便利


ともあれ、これではてダの記事が書きやすくなると思うので使ってみてください。