持ち込みカラオケシステム女医ハックの核をなすアプリケーション*1のHackENT。これにはHTTP経由で、現在歌っている曲の情報を送信する機能があります。マニュアルにはネットワークを利用した機能を使うのページで「ネットワークを利用したロギング」として紹介されています。
詳しい機能としては、指定されたURLの後に以下のような文字列をURLエンコードしてGETアクセスするものです。
[NowHacking] キミに届け / ふじのマナミ / pop'n music 7 CS / 伊勢 : '癒される名曲。'
このログは主な用途として、IRCボット(あるいはIRCプロクシ)という常駐プログラム経由でこのままIRCへ流して使うことが想定されているのですが、僕の使っている nadoka というRubyで書かれたIRCボットにはそういった機能がなさそうだったので、nadoka 標準添付のWebAという、HTTP経由でIRCに参加できるプラグインを改良して試験実装してました。
で。大阪で女医ハックがあったのですが、その際ずっとメインでホストしてくれてるやねしんさんのMacBookが不調に。急遽僕が代打で僕がホストをすることになり、思いかけず実地デバッグができたので載せてみます。
WebA からの変更点は、HTTP GETでの機能を一度ばっさり削除して、 mes パラメータで入ってきた文字列をJISエンコードした後、設定されたチャンネルに NOTICE するようにしたのと、パラメータの調整です。オリジナルは nadoka の配布アーカイブの中に入ってます。
設定方法
http://half-done.net/bin/hddown.php?domain=iseebi&file=hackmessage.nb をダウンロードして、お手持ちの nadoka の plugins フォルダに入れてください。
次に、hackmessage.nb のヘッダを参考に、BotConfig に HackMessage の設定を追加して、nadoka の設定をリロードしてください。
nadoka の設定がうまくいったら、HackENTの環境設定「HTTP設定」の「再生中の曲情報をサーバに送る」にチェックをいれ、クエリ欄に以下のように入力します。
http://[:idの内容]:[:passwdの内容]@[サーバーのホスト名]:[:portの内容]/[:entryの内容]/?mes=
これで HackENT に予約を入れると、設定したチャンネルにNowHackingのメッセージが流れるようになります。
nadoka を動かしてるマシンでApacheが動いてて、そのマシンでは80番ポート以外あけたくない場合は、Apache に以下の設定を加えるといいでしょう。
ProxyPass /[:entryの内容]/ http://127.0.0.1:[:portの内容]/[:entryの内容]/