トップページ "Galle Basra" > インタプリタ・スクリプト > COMCHATを改造する > COMCHAT改造版再配布(Perl)

COMCHAT[COM CHAT]再配布 ~comchat.cgiの改造版~

紅堂流Perl入門に「Perlのバージョン」について書いた物あります。サーバ側のPerlバージョンをチェックしましょう。
Perl v5.6以降のサーバで使えるモジュールあったりで普段使ってるPerl CGIでも高速化が望めるものあるかもよ?

 CGI(Perl)に触っているなら皆さんご存知だろう、KENT WEBのKENTさんのCOMCHAT(COM CHAT)を改造した物を再配布します。
 元のバージョンはCOMCHAT 4.4(comchat.cgi)です。ここでは改名し、ElDorado Chat v1.0.x(comchate.cgi)としています。
 →2016/04/23:COM CHAT v5.01をベースにElDorado Chat v1.1(無印)を作成し再配布いたします。
 私(紅堂幹人)が『COMCHATが好き』で改造したのが始まりで、改めてスマート(余計な処理を加えず)に改造しなおしたものです。
 →COM CHAT無関係なElDorado Chat-PHP/ElDorado Chat-NEO(PHPのPerl移植版)も開発しています。

ElDorado Chatシリーズ サンプル置き場

 CGI-Search「チャット」カテゴリDLランキングによると、人気多「R>I>無印>D>本家COMCHAT」人気少のようです。
 ROM人数(入室してない人数表示)は人気なようですね。
 CGI-Search アイコンチャット「ElDorado Chat-PHP」  夢幻 アイコンチャット「ElDorado Chat-PHP」  CGIZOO(I-SAY.NET) チャット

 ElDorado Chatは、COMCHATの外装をほとんど触らず、『複数の機能を追加しただけ』のPerlスクリプトです。
 他の再配布チャットのように『デザインを押し付けるわけではない』。ただ、『使いやすく』を目標に。
 数あるCOMCHAT改造再配布の中のスタンダードタイプを目指し。COMCHATのカスタマイズ性を残し。
 『COMCHATを自分で改造する』の確認用に、と作った物をそのまま配布しているものです。
 同じくKENT WEBで配布しているWindy(WINDY CHAT)と組み合わせれば携帯電話からのアクセスにも対応できます。

 無改造のCOMCHATとElDorado Chat、どちらを使おうか迷っている場合は、ElDorado Chatを使った方がいいかと。
 既にCOMCHAT改造を自力でしてる方は、『COMCHATを改造する』を参考に自力で機能追加してください。できるでしょ?

COMCHAT[COM CHAT]再配布 ~comchat.cgiの改造版~ 注意書き

注意書き・利用規定について

それでは、お約束の注意書きを書いておきましょうか。
  • 必読:KENT WEB フリーソフト利用規定 これを読まずに本スクリプトをダウンロードしてはならない。
  • ElDorado Chatを更に再配布しようとする方は、KENT WEB 再配布の規定を読んでください。
    ElDorado Chatを更に改造した物の再配布はご自由に。
  • 本スクリプトはKENT WEBのCOMCHAT(フリーソフト)を改造した物であり、本スクリプトも無償で配布されています。
  • 本スクリプト(改造品)を用いた場合、KENT WEBにサポートを求める事はできません。問い合わせしないでください。
    サポートを求めるならPerlの参考書読め、と返します。意見があるのであれば紅堂幹人へどうぞ。
    雑談掲示板「CGI(Per)改造の相談スレッド」。当サイトで扱う範囲でお願いします。
  • 設置の際にはKENT WEB,Galle Basraの著作権表示・リンクを削除しないでください。
  • アーカイヴ・このページに直接リンクしてはならない。弾いたりファイル名とか変えたりします。
  • 本家『COMCHAT』を自力で設置できる。できないのであれば、実力不足です。ElDorado Chatを設置しないように。
 ……こんな所かな?

 では、次にElDorado Chatの機能説明を。COMCHAT v4.4に以下の機能を追加しただけです(ElDorado Chat v1.0.x系)。

  • メールアドレス欄にコメントやURLを入力できる。
  • URLやメールアドレスを含んだ発言をすると自動リンクする。
  • 入室前の色選択をボタン式からプルダウン式に変更してある。
  • 時間表記の変更。年を表示する。(例:『2/5-17:39:55』を『2005/02/05-17:39:55』)
  • 参加者一覧の左横に時間を表記し、リロードできるようにした。
  • おみくじ機能が使える。+MASTERの擬似反応。
  • ステータス機能が使える。(『名前@ステータス』の形式。例:『紅堂幹人@ROM』等)
  • 全消しコマンド(adminclear),特定の発言を削除する(checkdelete)機能を追加。
  • 『顔文字』や『ステータス』を使わない場合、表示しないようにした。
    補足:@facesや@status_fをコメントアウトしてやれば良い。
  • 発言復活ボタンが使える(要JavaScript)。
COM CHAT v5.01をベースにしたElDorado Chat v1.1.0時点では以下。ステータスは一旦不採用。
  • メールアドレス欄にコメントやURLを入力できる。
  • URLやメールアドレスを含んだ発言をすると自動リンクする。
  • 入室前の色選択をボタン式からプルダウン式に変更してある。
  • 時間表記の変更。年を表示する。(例:『2/5-17:39:55』を『2005/02/05-17:39:55』)
  • 参加者一覧の左横に時間を表記し、リロードできるようにした。
  • おみくじ機能が使える。
  • 全消しコマンド(adminclear),特定の発言を削除する(checkdelete)機能を追加。
  • 発言復活ボタンが使える(要JavaScript)。
  • フレーム部以外HTML5として記載し、文字コードをShift_JIS→utf-8として保存。改行コードはLF。

 他機能別詳細

  • ダイス機能を追加。(別アーカイヴとして配布中です) ElDorado Chat-D
    • nDmと発言するとm面ダイスn個を振る。
    • 途中計算の表示・非表示選択
  • アイコン機能を追加。(別アーカイヴとして配布中です) ElDorado Chat-I
    • 入室前・入室後のアイコン変更可
    • ログ表示画面『アイコン非表示』の参加者選択可
    • アイコン一覧
    • アイコン簡易見本(要JavaScript)。
  • ROM人の人数表示を追加。(別アーカイヴとして配布中です) ElDordo Chat-R
    • ROM人数が表示される。
    • 名前とHOST(IP)で参加者を判別

使わない機能があるのであれば、当然その部分を消去してしまえばいいだけのことです。

本来なら改善すべきだろう点

 つまりCOMCHATもElDorado Chatも改善はしてない点。
 単に「KENT WEB」「COMCHAT」ってブランド名と商品名借りてるだけだし、これ以上やったらCOMCHATって感じじゃなくなるし。
 紅堂は作るなら別名でやりますよ。既に『ElDorado Chat-PHP』や『ElDorado Chat-NEO』で実現してますが。
  • HTML 4.01の準拠(frame部はFramesetに、ログ部分はStrictに、入室前・入室後上部はTransitionalに)するならCSS必須
  • GET発言の不可(method="POST"でのみ発言可能にする)→現状では荒らし対策が不十分
  • Perl v5.x時代なのにPerl v4時代の書き方をしている部分require回りの修正。
  • globalを極力削減。local関数をmy関数に。チャットで全部globalは致命的。
  • jcode.plの軽量版jcodeLE.plやjcodeELE.plの利用の提案(もしくはJcode.pmをuse Jcode;するとか)。
  • オールインワン形式からの脱却(comchat.cgiやcomchate.cgiだけで動く形式を止める)
    最低限でも、「フレームとフレーム上部」と「ログ・書き込み部分」との2つに分離するべき。
  • 排他制御処理の見直しや初心者向けの説明書きの統一。
    memberルーチンではeval "flock(OUT,2);";してるけど他ではlockファイル、とか。
    Symlink=Windows+ActivePerlでは動かず。通常であれば「mkdir」ロックを使うべき。midirもSymlinkもロックの強度は同程度のレベル。 強 flock > mkdir ≧ symlink > rename > open 弱って感じ。飽くまで紅堂の主観なので違うかも。
  • その他のPerlスクリプト最適化。packする所のpack("C", hex($1))な部分をpack('H2', $1)にするとかちまちました物。
COMCHAT[COM CHAT]再配布 ~comchat.cgiの改造版~

ElDorado Chatシリーズ サンプル置き場

■ プログラムの入手
書庫ファイルはZIP形式(.zip)を用意してあります。LHAはいつのまにやら脆弱性がアレだし、cabも使われてないだろうしでZIPのみに絞りました。
 v1.0.x系のjcode.plのバージョンはCOMCHAT v4.4に同封してある物と同じ『2.13』です。

 ■ ElDorado Chat v1.1.0 (スタンダードタイプ) 2016/04/23
comchate_v1.1.zip (16,882Bytes)

 ■ ElDorado Chat v1.0.2 (スタンダードタイプ) 2005/02/17
comchate.zip (19,137Bytes)

 以下の配布物への改造方法も『COMCHATを改造する』に掲載しています。

 ■ ElDorado Chat-D v1.0.2 (スタンダードタイプにダイス機能だけを追加したもの) 2005/02/17
comchated.zip (19,636Bytes)

 ■ ElDorado Chat-I v1.0.2 (スタンダードタイプにアイコン機能だけを追加したもの) 2005/02/17
comchatei.zip (20,362Bytes)
 ここではアイコンの配布をしていません。透化GIFだけ同封してあります。

 ■ ElDorado Chat-R v1.0.3 (スタンダードタイプにROM表示機能を追加したもの) 2005/02/18
comchater.zip (19,257Bytes)
 sub member(在室者処理)に変更を加えた物。多少の不具合は大目に見てください。

COMCHAT再配布 - 戯言

 ElDoradoはエルドラドと読みます。
 EllDoradoじゃありません。解散残念。紅堂は瞬介さん(ex.EllDorado)追いかけてbis聞いてたり(ご冥福お祈り申し上げます…)。
 解散後もElDorado一日復活ライブとかやってるようなので少し安心。砂の王国はまだそこにある。
  注:ElDoradoはV系インディーズバンド。

  公開履歴 - 後悔履歴にならないように祈る
 05/02/07-ElDorado Chat(スタンダードタイプ)を配布開始(COM CHAT v4.4ベース)
 05/02/08-ElDorado Chat-D(ダイス付タイプ)を配布開始
 05/02/17-ElDorado Chat-I(アイコン付タイプ)を配布開始
 05/02/18-ElDorado Chat-R(外ROM人数表示付タイプ)を配布開始
 16/04/23-ElDorado Chat(スタンダードタイプ)のv1.1を配布開始(COM CHAT v5.01ベース)

  戯言 - 更新の詳細もどき(後悔の懺悔)
 05/02/11-『メールアドレス欄にコメントやURLを入力できる。』でhref=の『\"』忘れてたので更新です(吐血)。
  ダイスの方は初期最大数:20D20にしておきました。これなら普通に設置しても問題無い負荷でしょう、と。
  [20D20|17+2+9+2+6+18+15+12+4+1+6+7+2+8+1+20+10+8+19+10=177/400]これくらいの長さになります。

 05/02/17-読み直したら色選択のselectを閉じてなかったので全部1.0.2にdetailアップ。別にセキュリティ上の問題は無し。
  detail上げる事は未熟である、という恥。すっごいプレッシャー掛かります。
  分家としてElDorado Chat-Iを配布開始。追加方法は長いので後日。

 05/02/18-ROM表示機能追加版のElDorado Chat-Rを配布開始。参加者を配列に追加する形式。
  入室直後に外ROMがそのままなのがたまにキズ。公開後、安定したら標準装備にしようか?
  えと、ステータス表示形式全部変えて1.0.3全リリースになるかも。見直して効率考えて。

 05/02/25-サンプルの場所やら変更。スタンダード,D,Rを同一ログから読むように。
  Iはアイコンの項目あるから別ログだけど。これで比較しやすくなったでしょう、と。

 ワンポイントアドバイス・デザイン変更講座
 ログとかの<hr>の変更は、『sub header(HTMLヘッダ)』のスタイルシートを弄ります。

<STYLE TYPE="text/css">
<!-- body,tr,td,th { font-size:$b_size } -->
</STYLE>

 上部部分を『hr { border-style: dotted; }』とか『hr { border-style: dashed; }』とか追加すればいいわけで。以下が変更例。
 この辺はスタイルシート講座などを探しましょう。

<STYLE TYPE="text/css">
<!--
body,tr,td,th { font-size:$b_size }
hr { border-style: dashed; color: ****** }
-->
</STYLE>
多機能チャットスクリプト『ElDorado Chat-PHP』 // アイコンチャットタイプ

更に高機能なチャットが欲しい方へ ~ElDorado Chat-PHPの紹介~

 紅堂幹人と親しくなれば、紅堂幹人オリジナルチャットスクリプトPHP版『ElDorado Chat-PHP』を渡す事もあります。
 一週間やそこらで親しくはなれないと思います。話し合って信頼できるようになれば良いのですよね。
 チャットの企画書(チャット規模・利用ユーザ想定・見込みなど)を持ち込むなどプレゼンして頂ければ動く(紅堂幹人が行動を起こす)場合があります。
 『アイコンチャット』に重きを置いているので、肖像権・著作権侵害の恐れがある利用のされ方は望ましく有りません。

 ElDorado Chat-PHP及びElDorado Chat-NEO[R]ではチャットスイート(Chat Suite)『”快適なチャット”に必要な環境の一式』を目指しています。
「通常雑談チャット」「なりきりチャット」「パスワードチャット」の3種のモードが設置切り替えできます。
 アイコンサイズは固定で、入退室履歴、発言ランキング、モバイル対応(携帯電話3大機種[DoCoMo=i-mode/au=EZweb/SoftBank=Vodafone=J-PHONE]完全対応@XHTML式)、JavaScript発言履歴、BB Code対応、個別会話(秘話/囁き/耳打ち/Wiz)機能搭載、文字列フィルタ機能、入室通知……
 入退室履歴のRSS/Atomフィード配信、Audio Scrobller「Last.fm」との連携、アイコン縮小フィルター、アイコン持ち込み可能……
 製作者としては『チャットとして利用される』事を望む……成功させたいわけで。ぶっちゃけ内輪3,4人で遣うだけなら渡す気無いです。パスチャやら勝手に使って良いけど『設置までする必要ない』じゃん。
ElDorado Chatシリーズ サンプル置き場

ElDorado Chat-PHP/ElDorado Chat-NEO[R]利用チャットリンク

参加者一覧集