yancha is Yet Another Nerwork CHAt. (old name yairc) by Hachioji.pm
JavaScript Perl CSS CoffeeScript Shell PLpgSQL Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
db
helper
lib
script
static
t
view
xt
.gitignore
.travis.yml
Makefile.PL
README.mkd
chat.psgi
config.pl.sample
cpanfile
cpanfile.mysql
cpanfile.mysql.snapshot
cpanfile.snapshot
start.sh
stop.sh
watcher.pl

README.mkd

yancha Build Status

yancha (旧名yairc) はログの保全、リアルタイム性、モバイル端末への対応を重視した、Perlで作成されたチャットシステムです。

サンプル http://yancha.hachiojipm.org:3000/

サーバサイドはPerl、クライアントサイトはHTML+JSで作成され、PocketIOによりWebsocketで通信しています。

yanchaの目標

IRCなどの不便な点をカバーするチャットシステムを作る事です。

具体的には

  • ログの消失 → 全件をDBに永続保存
  • 多チャンネル接続時の一覧性 → チャンネルではなく、ストリームとタグを採用
  • 高度な引用方法 → コード貼り付け時のシンタックスハイライトや、インライン画像表示など
  • セキュリティ → 認証によりユーザ詐称の回避、通信の暗号化
  • モバイル端末への対応 → スマートフォン対応
  • 外部連携 → 利用しやすいAPIを用意
  • ログの再利用 → チャットログの引用機能
  • 外部SNSとの連携 → retweet的機能

などが目標となっています。 (上記は実装中や、構想段階で実装されていないものも含みます)

サーバサイド動作環境

Perl 5.12以降(サンプルサイトは5.14で運用しています) 必要なモジュールは Makefile.pl を参照下さい。

クライアント動作環境

  • Websocketをサポートするモダンブラウザ(Chrome,Firefox等)
  • iOS5以降、MobileSafari(iPhone/iPad)
  • Android 2.3以降、Webview等

インストール方法

  1. $carton install を実行して下さい
  2. [DB に MySQL を利用したい場合] $carton install --cpanfile cpanfile.mysql を実行して下さい
  3. データベースを用意し(現在はMySQL、SQLiteに対応)、db/init.sql(init_sqlite.sql)にて初期化を行って下さい。
  4. config.pl.sampleをconfig.plにコピーし必要な情報を設定下さい。最低限DB接続情報の設定が必要です。
  5. 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