Skip to content
/ yancha Public

yancha is Yet Another Nerwork CHAt. (old name yairc) by Hachioji.pm

Notifications You must be signed in to change notification settings

uzulla/yancha

Repository files navigation

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