HIP (HTTP IRC Proxy)

HIPより高機能なIRCボットを作成しました。HIPと同じ機能を持っていますので、ぜひ下記をご利用ください。


HIP(HTTP IRC Proxy)は、HTTPリクエストで、IRCボットに発言をさせることが出来るサーバです。

HIPを利用することにより、他のアプリケーションからIRCにメッセージを流すことが、簡単に出来るようになると思います。

例えば、FirefoxのGreasemonkeyスクリプトから、GM_xmlhttpRequestを使ってHIPに対してメッセージを送信し、IRCボットに発言させるといったことも可能です。

IRCにちょっとメッセージを流したいって時に、わざわざそのためにIRCボットを実装するのは面倒なので、HIPを使うことにより、その手間を省くことができると考えています。

また、HIPを使うことにより、複数のアプリケーションからのメッセージを1つのIRCボットに集約できるので、IRCボットの乱立を防ぐ効果もあります。

HIPは、IRCの内容をログとして保存する機能も備えていますので、ログ収集用のIRCボットとしても使えます。(ログは、ブラウザ上からアクセスして参照可能)

HIPのIRCボットの部分は、PircBotというJavaによりIRCボットのライブラリを利用しています。

HTTPサーバの部分は、Jettyを使っています。


動作環境

Javaの実行環境(JRE1.4以上)が必要です。


ダウンロード

ソースコードは下記からも参照できます。


ライセンス

PircBotに依存しているため、PircBotと同じくGNU General Public License v2.0となります。


使用方法

hip-0.1.zipファイルを解凍します。

設定ファイルの変更

利用する環境に応じて設定ファイル(config.properties)を変更します。

設定ファイルの内容は下記の通りです。

項目 必須
/任意
内容
nick 任意 IRCで使用するニックネームです。
省略した場合、"hipBot"となります。
serverName 必須 IRCサーバの名前です。
serverPort 任意 IRCサーバのポート番号です。
省略した場合、6667 となります。
serverPassword 任意 IRCサーバのパスワードです。
IRCサーバにパスワードが設定されている場合には、ここに記入します。
encoding 任意 IRCで利用するエンコーディングです。
省略した場合、"UTF-8"となります。
(日本のチャンネルだと、"iso-2022-jp"の場合も多々あると思います)
channel 必須 IRCチャンネル名です。
joinMessage 任意 IRCボットがログイン時に発言するメッセージです。
省略すると、"This channel is logged."となります。
outputDir 任意 IRCのログを保存するディレクトリです。
省略すると、"./irclog"となります。
(特に変える必要は無いと思います)
httpPort 任意 HTTPリクエストを受け付けるポート番号です。
省略すると、3333 になります。
prefixRemoteAddress 任意 "true"を指定すると、発言するメッセージの先頭に、リモートIPアドレスを付与するようになります。
どこからのリクエストなのかを発言内容から知りたい場合に設定すると良いと思います。

HIPの起動

HIPを起動します。

Windowsの場合はstart.bat、Linuxの場合は、start.shを実行してください。

なお、HIPの実行には、Javaの実行環境(JRE1.4以上)が必要となりますので、インストールされていない場合には、インストールしてから実行してください。

IRCボットに発言させる

IRCボットに発言させるためには、下記のようなURLにたいしてリクエストを送信します。(下記は、HIPを起動しているマシン上からアクセスした場合のURLの例です)

http://localhost:3333/talk/

パラメータとしてmessageに発言内容を指定します。(UTF-8でエンコード)

リクエストはGET、POSTどちらでもOKです。

GETで「こんにちは!」を発言させる場合のURLは、下記のようになります。

http://localhost:3333/talk/?message=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%EF%BC%81

IRCログを参照する

IRCログは、HIPのルートURLを指定することにより参照できます。(下記は、HIPを起動しているマシン上からアクセスした場合のURLの例です)

http://localhost:3333/

ログ1

ログ2

サンプル:Greasemonkeyを使って表示したページのURLをIRCに流す

Greasemonkeyを使って、IRCボットに発言させるサンプルです。

下記のGreasemonkeyスクリプトをインストールすると、表示したページのタイトルとURLをIRCに流すことができます。

// ==UserScript==
// @name           talk page
// @namespace      http://www.enjoyxstudy.com/
// @include        http://*
// @exclude        http://localhost*
// @exclude        http://127.0.0.1*
// ==/UserScript==

if (window != window.parent) return;

var message = encodeURIComponent(document.title) + ' ' + encodeURIComponent(location.href);

GM_xmlhttpRequest({
  method: 'POST',
  url: 'http://localhost:3333/talk/',  // HIPサーバを起動しているマシンに応じて変更
  headers:{'Content-type':'application/x-www-form-urlencoded'},
  data: 'message=' + message
});

変更履歴

ver 0.1 (2008/06/17)

  • 初回公開。


その他

お問い合わせ、コメント等は下記Blogまたは、Contact からお願いします。