2015-01-29

chatwork.el に To を補完入力する機能を追加した

拙作 chatwork.el に To を補完入力する機能を追加した。chatwork-send-message-in-region と一緒に使うことを想定している。

前提

ChatWork では相手を指定してメッセージを送ることができる。Twitter の @記法 のようなもの。To で自分が指定されたメッセージを受け取ったら、ChatWork 上の「To」タブにバッジが付く。

To の指定方法は簡単。チャットの送信領域から「To」をクリックして送信相手を選択するだけ。すると、送信フィールドに「To タグ」が挿入される。こんな感じ。

chatwork-to

ちなみに、複数の To を送りたい場合は Shift ボタンを押しながら。全員に To を送る場合は、「メンバー名を検索」の下にある「すべて選択」をクリックする。

設定方法

「名前」と「To タグ」のコンスセルを chatwork-room-member-alist に設定する。「To タグ」はウェブから実際に人を選択して現れた「To タグ」をコピペするのが楽。というか、それ以外に方法はないんじゃないかな。人の選択は「名前」で行なうけど、日本語入力をオン・オフするのは手間なのでぼくはアルファベットで入れている。

設定例はこんな感じ:

(setq chatwork-room-member-alist '(
  ("ataka"   . "[To:927811] 安宅 正之さん")
  ("someone" . "[To:123456] Mr. Foo")
  ))

これを .emacs にでも入れておく。

使い方

M-x chatwork-insert-tag-to で入力プロンプトが出る。「名前」を補完入力すると、カーソル部分に「To タグ」が挿入される。

適当なバッファに「To タグ」とテキスト本文を書き込んで、chatwork-send-message-in-region でチャットワークに送信する。そんな使い方を想定している。

あとがき

To の候補リストは自分のいる「チャットルーム」ごとに変わる。具体的には、「チャットルーム」に所属している人しか候補に現れない。

ぼくの方式では、「チャットルーム」にいない人にでも To が書けてしまう。送ったところで、チャットルームにその人はいないので、単なるテキストが送られるのと変わらないけど。

この方式の悪い所は、chatwork-room-member-alist が大きくなると、収拾がつかなくなること。これから送ろうと思ってるチャットルームに、その相手がいるかどうか分からない。

本当はルームを選択した上で、そのルームに含まれる人だけを候補に出す仕組みにしたかった。何でしかなかったかと言うと、そういうコードを書くのが手間で、それより先に、とにかく To を送る仕組みが欲しかったから! ちゃんとした To 送信の機能は、時間をかけて作るつもり。それまで、この簡易版でご容謝を。

No comments:

Post a Comment