yancha (旧名yairc) はログの保全、リアルタイム性、モバイル端末への対応を重視した、Perlで作成されたチャットシステムです。
サンプル http://yancha.hachiojipm.org:3000/
サーバサイドはPerl、クライアントサイトはHTML+JSで作成され、PocketIOによりWebsocketで通信しています。
IRCなどの不便な点をカバーするチャットシステムを作る事です。
具体的には
- ログの消失 → 全件をDBに永続保存
- 多チャンネル接続時の一覧性 → チャンネルではなく、ストリームとタグを採用
- 高度な引用方法 → コード貼り付け時のシンタックスハイライトや、インライン画像表示など
- セキュリティ → 認証によりユーザ詐称の回避、通信の暗号化
- モバイル端末への対応 → スマートフォン対応
- 外部連携 → 利用しやすいAPIを用意
- ログの再利用 → チャットログの引用機能
- 外部SNSとの連携 → retweet的機能
などが目標となっています。 (上記は実装中や、構想段階で実装されていないものも含みます)
Perl 5.12以降(サンプルサイトは5.14で運用しています) 必要なモジュールは Makefile.pl を参照下さい。
- Websocketをサポートするモダンブラウザ(Chrome,Firefox等)
- iOS5以降、MobileSafari(iPhone/iPad)
- Android 2.3以降、Webview等
$carton install
を実行して下さい- [DB に MySQL を利用したい場合]
$carton install --cpanfile cpanfile.mysql
を実行して下さい - データベースを用意し(現在はMySQL、SQLiteに対応)、db/init.sql(init_sqlite.sql)にて初期化を行って下さい。
- config.pl.sampleをconfig.plにコピーし必要な情報を設定下さい。最低限DB接続情報の設定が必要です。
- start.shを実行することで起動ができます。
start.shを以下のように記述することで、各種ログが取得出来ます
#!/bin/sh
export POCKETIO_CONNECTION_DEBUG=1
export YANCHA_DEBUG=1
twiggy -l :3000 --access-log access_log chat.psgi >> yancha_log 2>&1
Q. yanchaを起動できたけど、どうすればTwitterでログインできるの?
A. まず http://dev.twitter.com/ に行って、アプリケーションの登録を行ってください。 その際、Callback URL というものを入力できる箇所がありますので、
(あなたのサーバ上のyanchaのURL)/login/twitter
を指定してください。
例: yanchaのURLが "http://isu.mohikan.example/yancha" であれば、Callback URLは
http://isu.mohikan.example/yancha/login/twitter
となります。
アプリケーションの登録ができたら、config.plでConsumer Key および Consumer Secret を以下のように設定します。
'server_info' => {
... 中略 ...
auth_endpoint => {
... 中略 ...
'/login/twitter' => [
'Yancha::Auth::Twitter' => {
consumer_key => 'ここにConsumer Keyを入力',
consumer_secret => 'ここにConsumer Secretを入力',
}, => { description => 'Twitter!' },
],
},
... 中略 ...
},
最後にyanchaを再起動すれば、Twitter経由でのログインが有効になります。
その他情報はWIkiをご参照ください
https://github.com/uzulla/yancha/wiki
MIT License です。 http://www.opensource.org/licenses/mit-license.php