iMona関連のスクリプト・ソースコードなどの配布場所





注意
以下の情報はとっても古い情報なので役に立たないと思います。
最新版のソースコードは
http://x.imona.net/redmine/
において提供されています。






ここは、spdv.netが落ちたときでも使えるように
iMonaのサーバを自分でたててしまいましょうってなかんじのページです。
あと、ソースコードを見てみたいという方もこちらです。
でも、説明が適当なのである程度スキルがないと動かせないかもしれません。

iMonaに関してはこちら

[ダウンロード(第十四版,0.76.1)] 04/03/31
過去のデータ(過去のアプリをダウンロードしたい場合もここです)
初公開版 第二版(02/07/29) 第三版改2(02/08/01) 第四版(02/08/03) 第五版(02/08/13) 
第六版(02/08/31) 第七版(02/09/06) 第八版(02/12/19) 第九版(03/01/24) 第十版(03/06/15) 
第十一版(03/10/12) 第十二版(03/10/29) 第十三版(03/11/20)


2.cgiプロトコル仕様書 ver1.25
1.24 1.23 1.20 1.10 1.00
これは、iMonaサーバ(2.cgi)とiMona間のプロトコルの仕様書です。
iMonaがどのようなデータをやりとりしているかを知りたい方や
iMonaサーバを使用したアプリを作りたい方はどうぞ。





= Installation Manual =



・ 目次

入っているファイル/ディレクトリの説明

iMonaサーバの目的

使えるサーバについて 

各種アプリのサーバへの接続についてのまとめ

とりあえずの使用方法

管理方法

改良などを加えたい場合 

コンパイル時の注意

ライセンスとか

最後に


・ 入っているファイル/ディレクトリの説明

\iMona
	使用にあたってアップロードする必要のあるファイル
	brd2.txt		カテゴリの名前と板の名前が入っているファイル。0.52用の板一覧でダウンロードするファイルでもあります。
	brd3.txt		板番号から板のURLを導くためのファイル。
	brd4.txt		brd2.txtの新バージョン
	brd5.txt		brd3.txtの新バージョン
	2.cgi		携帯と2chサーバをつなぐメインのスクリプト。要はプロキシです。perlスクリプト。
	2c.pl		datを管理するスクリプト。
	editbrd.pl		板移転の自動追尾に対応するためのスクリプト
	http.pl		通信を管理するスクリプト。
	gz2pkz.pl		gzipをpkzipに変換するスクリプト。
	setting.pl		設定を行うためのスクリプト。
	compw.txt		決まった文字を圧縮する用のファイル。
	jcode.pl		日本語処理用

	必要であればアップロードするファイル
	editboard.cgi	板の編集をするためのスクリプト。spdv.netから最新(?)の板一覧のインポート用。perlスクリプト。
	menu.txt		0.52の初回ダウンロード用のテキストリソース。
	log.cgi		アクセス数を表示するためのスクリプト
	dat.pl		dat直読みの2chブラウザ(iMonaのキャッシュ表示も可能)
	\dat		dat直読みする場合に必要。中身はからでかまいません。
			中にファイルやディレクトリを作成できるようパーミッションを設定してください。
			744か777あたりでいけるかと思います。

アップロードする必要のないファイル
\dev			開発用のファイル群
	\tool		ツールが入ってるディレクトリ。
		cnv.cgi	brd2.txtからdocomo用javaのソースを作るperlスクリプト(現在のバージョンでは使用していません)。
		div.cgi	brd2.txtからezplus用のリソース(brd.txt cat.txt)を作るperlスクリプト。
		iMonapp.pl	ほとんどiMona専用のプリプロセッサ。
	\src		ソースコードが入っているディレクトリ。
	\bin		コンパイル後の各種バイナリが入っているディレクトリ。
	\res		リソース(壁紙はニチャンネラ★さんのところからいただいたものを加工しました)。


・ iMonaサーバの目的

このスクリプト群は、2ch(+互換掲示板)のためのプロキシの役割を果たします。
第一の目的は、携帯JAVAの接続先の制限を回避するためのものです。
また、データの圧縮機能やサーバにdatファイルをキャッシュして2chの負荷を減らす機能などが実装されています。
携帯の通信は通信データ量で課金されるので、可能な限りやりとりするデータが少なくなるようにしています。


・ 使えるサーバについて
普通にperlのスクリプトが動いてSOCKETが使えるところです。
mod_perlでの動作もサポートしていますので使用できる場合は使用した方が動作が軽くなります。

また、オプションによってはgzipも必要です。linuxだとおそらく入っていると思います。
インストールされていない場合は、gzipのバイナリを落としてきて同じディレクトリに置いてください。
gzipはここ(google,gzip)で各種バイナリが手に入ります。
バイナリがない場合はコンパイルしてください。

バイナリデータを扱うため、無理矢理広告を入れてくるようなサーバはだめです。
Content-typeを勝手に変えるような所は通信に失敗する端末がでるかもしれません。
要はフリーサーバでなかったらまず大丈夫だと思います。

フリーサーバではwww.xrea.comで動作確認ができました。
しかし、設置すると広告が表示されないためアカウントを消される可能性が高いです。
お金を払って広告を非表示にするか、目立たないように一人で使わせてもらうくらいにしておきましょう。


・ 各種アプリのサーバへの接続についてのまとめ

iappli		アプリをダウンロードしたサーバにのみ接続可能
ezplus(phase 1)	HTTP接続が不可能(iMonaは使用不可能です)
ezplus(phase 2,2.5,3)	指定した3カ所まで接続可能
Vアプリ(javaアプリ)	どこでも可能


・ とりあえずの使用方法

まず、スクリプトの準備です。
はじめに、setting.plをエディッタで開いて鯖の環境に合うように設定を変えてください。
設定についての説明はsetting.pl内に記載されています。
設定が完了したら、入っているファイル/ディレクトリの説明を参考にしてファイルをアップし、
適当にパーミッションを設定してスクリプトが動く状態にしてください。
suEXECが入ってる鯖でなかったらeditboard.cgiで編集する可能性が高いのでbrd2.txt、brd3.txtのパーミッションは666、
一時ファイルやdatを作成するのでファイルを置くディレクトリや「dat」ディレクトリのパーミッションは777にした方がいいと思います。
http://あなたのサーバ/2.cgi?b=0
にアクセスしてニュース速報+のデータが落ちてきたら成功です。文字が化けている可能性がありますが問題ありません。
0というデータしか落ちてこない場合は失敗です。
板が移転している可能性がありますのでここを見て板リストを同期してからもう一度試してみてください。
このとき、http://あなたのサーバ/2.cgi?m=verにアクセスするとデータが表示される場合は、
ディレクトリのパーミッションの誤り、ファイルの設置ミス、gzipのパスが通ってないかgzip自体が入っていないといった原因が考えられます。
internal server errorが起こる場合も失敗です。
この場合パーミションの誤りか、socketが使えないサーバの可能性が高いです。
もういちど確かめてみてください。
638さんが詳しく書いてくださったこれも参考になると思います。
http://cocoa.2ch.net/test/read.cgi/phs/1025568467/638

次にアプリの用意です。
■iappliで使う場合
iappliは端末によって機能や制限が異なっています。
現行のiMonaがサポートするのはDoJa2.0プロファイル以降です。
各プロファイルと端末については
http://www.nttdocomo.co.jp/p_s/imode/spec/info.html
をご覧ください。
DoJa2.xプロファイルの端末は\dev\bin\iappli504\内
DoJa3.xプロファイルの端末は\dev\bin\iappli505\内のアプリを使用することができます。
この中のファイルをアップロードする前に、
iMona.jamをエディッタで開き、
「AppParam = http://imona.net/」
を
「AppParam = http://yourserver.com/directory/」
のように編集してください。http://yourserver.com/directory/のところには、
2.cgiなどのスクリプトを置いたアドレスを指定します。
ただし、ここにiMona.jamの場所と違うサーバを指定した場合はiappliの仕様で使えません(通信時にエラーが出ると思います)。
iMona.jam、iMona.jarをアップロードした後、
<OBJECT declare id="iMona" data="http://yourserver.com/iMona.jam" type="application/x-jam"></OBJECT>
<A ijam="#iMona" href="index.html">iMona</A>
のようなHTMLを書いてあなたのサーバにアップロードして端末にダウンロードしてください。

■ezplusで使う場合はちょっと面倒です。
端折ってしか書きませんので詳しくは他のページで調べてみてください。
まず、\dev\src\iMona.java_をエディッタで開いて
7〜9行目くらいにある
#define SERVER "http://imona.net/"
#define SERVER2 "http://imona.zive.net/"
#define SERVER3 "http://soft.spdv.net/"
のURLを2.cgiなどのスクリプトを置いたアドレスに書き換えてください。
初回起動時には一つ目の鯖がデフォルトで選択されます。
その後プリプロセッサ(\iMona\dev\tool\iMonapp.pl)でiMona.java_を処理してください。
iMonapp.plの使用方法はiMonapp.plの中をご覧ください。
そしてezplusの開発ツールやjdk(1.3x 1.4はだめ)をインストールして、
project->editenv->other keywordに
「MIDlet-X-AllowURL-1: http://yourserver.com/」
を追加してください。http://yourserver.com/はあなたが2.cgiをおいた鯖を指定してください。
また\dev\res\ezplus,vapp\フォルダの中身(板データ,壁紙)をリソースフォルダに移してください。
そしてコンパイルしてアップロードし、携帯でダウンロードしてください。
au端末でのダウンロードは少々面倒なので注意してください。
ezgetなどを使うと簡単です。
mysyncなどのソフトを使うと簡単に転送することも出来ます。
これでデフォルトであなたのサーバに接続されるようになるはずです。
コンパイル時の注意も参照してください。

■javaアプリで使いたい場合は、配布されているアプリの設定で
その他->サーバ設定を選んであなたが2.cgiなどのスクリプトを置いたURLを指定するだけです。


・ 管理方法
板一覧をspdv.netと同期させるには、
http://あなたの鯖/editboard.cgi?mode=sync
にアクセスしてください。
2.cgiも同時に同期したい場合は、
http://あなたの鯖/editboard.cgi?mode=sync&src;=1
にアクセスしてください。
このスクリプトはセキュリティーが甘い(パスワードがスクリプトの中に記載されています)ため、
普段は動作しないパーミッションに設定しておくことをおすすめします。
普通に使うだけの場合は、その他のコマンドは特に必要ありませんが一応記述しておきます。
http://あなたの鯖/editboard.cgi?mode=edit
で板一覧の編集(板のURLの更新・板の追加)が出来ます。
ただし、ここで編集した後にmode=syncを実行すると当然ですがspdv.netの内容と同期されるので
変更した分が消えてしまいます。
また、2ch以外の板でもdat直読みに対応している板(0chなど)や
2chの新しめのread.cgi(ver5.25以上でrawmodeに対応しているもの)
を元にしたものなら設定次第で見ることが出来ると思います。
何もオプションをつけずにアクセス(http://あなたの鯖/editboard.cgi)すると読めない板の報告フォームが表示され、
ここに書き込むとhttp://あなたの鯖/editboard.cgi?mode=editでアクセスしたときに表示されるようになっています。


・ 改良などを加えたい場合
マルチキャリアに対応させたまま改良する場合は、\dev\src\iMona.java_を元にしてください。
このファイルは、はじめの方の#defineを変更してプリプロセッサにかけることによって
それぞれのキャリア用のソースコードを出力させることが可能になっています。
また、iアプリ用のものを作成する場合はDOJAPanel.java_もプリプロセッサにかけてください。
単一のキャリアにだけしか対応させる気がなければ、プリプロセッサにかけてから改良してください。
プリプロセッサについて知りたければ、C言語を解説してるページなんかを見るといいと思います。
java用のプリプロセッサはここ(java プリプロセッサ/google)で検索すると簡単に見つかると思います。
どうやら一般に配布されているプリプロセッサの大部分では動作しないことが判明したので、自分で作ってみました。
\iMona\dev\tool\iMonapp.plに収録されています(実行にはperlが必要です)。


・ コンパイル時の注意
iappli用のコードをコンパイルする場合は、\dev\src\iappli\内のソースコードが必要です。
また、EZZIPARCHIVEのオプションをつけてコンパイルする場合はZipArchive.javaも必要です。 このオプションがないときは必要ありません。 コンパイルオプションは、iMona.java_の53行目から始まる //各プラットフォームのオプション で選択します。 なお、ZipArchive.javaはiMonaとはライセンスが異なっていますので注意してください。

・ ライセンスとか
ZipArchive.javaはCPL(Common Public License) Version 1.0に従うものとします。
これ以外のソースコードについては以下の制限を守って頂ければ、自由に連絡なしで使用して頂いてかまいません。
[してはいけないこと]
・ソースコードを有料で配布すること(改造後を含む)。
・有料でサービスを行うこと(改造後を含む)。
・改造した部分以外の著作権を主張すること。


・ 最後に
ここまで読んでくださったあなたを含む、iMonaを支えてくださっているたくさんの方に感謝します。