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


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

iMonaに関してはこちら

[ダウンロード(第十一版)] 03/10/12
過去のデータ(過去のアプリをダウンロードしたい場合もここです)
初公開版 第二版(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) 


注意!!
ドキュメント類の整備が進んでいないため、以下のマニュアルは古い情報や、若干の間違いなどがあると思われます。
よりよいマニュアルにするためにも、不明な点があればスレの方に書き込んで頂けると大変助かります。




= Installation Manual =



・ 目次

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

使えるサーバーについて 

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

とりあえずの使用方法 update

管理方法

改良などを加えたい場合 

コンパイル時の注意

ライセンスとか

最後に


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

\iMona
	使用にあたってアップロードする必要のあるファイル
	brd2.txt		カテゴリの名前と板の名前が入っているファイル。0.52用の板一覧でダウンロードするファイルでもあります。
	brd3.txt		板番号から板のURLを導くためのファイル。
	brd4.txt		brd2.txtの新バージョン
	brd5.txt		brd3.txtの新バージョン
	2.cgi		携帯と2chサーバーをつなぐメインのスクリプト。要はプロキシです。perlスクリプト。
	2c.pl		datを管理するスクリプト。
	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			2chブラウザのテスト(dat直読みの実験用)
	\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		リソース(壁紙はニチャンネラ★さんのところからいただいたものを加工しました)。


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

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

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

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


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

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


・ とりあえずの使用方法

まず、スクリプトの準備です。
はじめに、setting.plをエディッタで開いて鯖の環境に合うように設定を変えてください。
設定についての説明はsetting.pl内に記載されています。
設定が完了したら、\devディレクトリ以外のファイルをアップして適当にパーミッションを設定してスクリプトが動く状態にしてください。
suEXECが入ってる鯖でなかったらeditboard.cgiで編集する可能性が高いのでbrd2.txt、brd3.txtのパーミッションは666、
一時ファイルを作成するのでファイルを置くディレクトリのパーミッションは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で使いたい場合は、\dev\bin\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を書いてあなたのサーバーにアップロードして端末にダウンロードするだけです。
ただし、2.cgiなどのスクリプトとiMona.jam、iMona.jarは同じディレクトリに置いてください。
サーバーの制限で、同じディレクトリにおけない場合は
iMona.jamをエディッタで開き、
「AppParam = http://yourserver.com/directory/」
といった行を追加してください。http://yourserver.com/directory/のところには、
2.cgiなどのスクリプトを置いたアドレスを指定します。
ただし、ここにiMona.jamの場所と違うサーバーを指定した場合はiappliの仕様で使えません。

■ezplusで使う場合はちょっと面倒です。
端折ってしか書きませんので詳しくは他のページで調べてみてください。
まず、\dev\src\iMona.java_をエディッタで開いて
25〜30行目くらいにある
「#define SERVER "http://soft.spdv.net/"	//サーバーのURL」
の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\フォルダの中身(板データ)をリソースフォルダに移してください。
そしてコンパイルしてアップロードし、携帯でダウンロードしてください。
au端末でのダウンロードは少々面倒なので注意してください。
ezgetなどを使うと簡単です。
mysyncなどのソフトを使うと簡単に転送することも出来ます。
これでデフォルトであなたのサーバーに接続されるようになるはずです。
コンパイル時の注意も参照してください。

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


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


・ 改良などを加えたい場合
マルチキャリアに対応させたまま改良する場合は、\dev\src\iMona.java_を元にするといいです。
このファイルははじめの数行目の#defineを変えてプリプロセッサにかけると
それぞれのキャリア用のソースコードを出力させることが可能になっています。
単一のキャリアにだけしか対応させる気がなかったらプリプロセッサにかけてから使用してください。
(プリプロセッサにかけただけなので改行だらけで見にくいです)
プリプロセッサについて知りたければ、C言語を解説してるページなんかを見るといいかもしれません。
java用のプリプロセッサはここ(java プリプロセッサ/google)で検索すると簡単に見つかると思います。

どうやら一般に配布されているプリプロセッサの大部分では動作しないことが判明したので、自分で作ってみました。
\iMona\dev\tool\iMonapp.plに収録されています。


・ コンパイル時の注意
iappli用のコードをコンパイルする場合は、\dev\src\iappli\内のソースコードが必要です。
これらのコードは、MIDPの機能をiappliで無理矢理動作させるためのものと、Panelクラスのために使用されています。
iappli用だけが容量が大きいのはこれが理由です。


・ ライセンスとか
他人にソースコードを売ったり(改造後を含む)、有料でサービスをしたりする以外は適当に使ってかまいません。
連絡なども必要ありませんので気軽に使ってください。改造して無料で再配布するとかも歓迎します。


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