chatworkをvimで
仕事でchatworkを使うことを強いられているので、vimから使えるようにしたいなと思いました。
実際にはProcessManagerを使う機会を探していてちょうど良かったのでやってみた感じで使えるかは微妙なところですが。
構成
API
よく分からないで言ってますが上にも書いたように、普通にjava -jar で起動すると、標準入力からコマンド受け付けてそれに応じてchatworkにリクエストをぽいっとします。で、レスポンスをゴニョゴニョして標準出力に出力します。ProcessManagerで使うためにそういう感じにしました。
clojureで作ったのは単なる興味です。
clojureとてもいい感じです。
連携にProcessManager
みんな大好きvital.vimのモジュール、ProcessManagerです。
外部のプロセスを立ち上げてやりとりすることができます。
こいつを使ってAPI serverとやりとりをします。
Uniteで操作
もはやvimmerで知らない人はいないと思いますがunite.vimです。
sourceとactionを定義するだけでUniteな感じでchatworkも使えるんですから、便利で仕方がありません。実際にはもちろんこの他にログインとかの動作もあるんですが、その辺は割愛。
作ったのはとりあえずsource1つとaction2つ。
sourceはchatwork/rooms
自分が入っているチャットを検索するsourceです。更新順に表示します。 デフォルトのactionは後述のmessagesになっています。
actionはmessagesとpost
messagesはその名の通り、対象のチャットのメッセージを表示します。今は一時バッファを開いて表示するようにしています。一応名前だけ色を変えるように設定しています。
postは対象のチャットにメッセージを投稿します。そのまんまです。
時間を表示したり[title]とかを色分けしたり、TOを強調表示したり未読やTOの数を表示できるようにできたらいいなと思っていますw
最後にスクショ
こんな感じで使えます。
よくgithubとかにアニメgifをおいているのを見てかっこいい!と思って真似したかったのです。それだけです。