この文書について
この文書は、NewsArchiverの簡易マニュアルです。
目次
NewsArchiverとは
newsサーバからNNTPプロトコルで記事を受信し、HTML形式に変換します。HTMLは、スレッド別記事一覧と、各記事のHTMLが生成されます。
記事タイトルのMIMEデコードには、
村田 弘幸氏のMimeDec.javaを参考にしました。どうもありがとうございました。
任意の個所に、すべてのCLASSファイルをコピーしてください。CLASSファイルのパッケージは無名になっています。
動作環境
Java2の実行環境(JDKもしくはJRE、version 1.2以降)が必要です。
NewsArchiverの実行
実行すると、サーバから記事を受信し、指定されたディレクトリに記事一覧(index.html)と、各記事のHTMLファイルを作成します。
MS-DOSプロンプトなどから、次のようなコマンドを入力してNewsArchiverを実行してください。
java -classpath dir. NewsArchiver server group data-dir. html-dir. back-URL [user password]
"-classpath
dir."は、Javaのクラスパスを指定するためのjavaのオプションです。NewsArchiverのCLASSファイルを置いたディレクトリを指定してください。CLASSファイルのあるディレクトリをカレントにして実行する場合は、省略することができます。
NewsArchiverの動作は、次の6つのコマンドラインパラメータで指定します。
- server
- 接続するサーバのホスト名もしくはIPアドレス。"@"を指定すると、サーバに接続せず、すでに受信済みの記事をHTML化する処理だけ行ないます。
- group
- 受信するnewsグループ名。
- data-dir.
- 受信した記事のデータファイルを保存するパス名。絶対パスでも相対パスでもかまいません。Windows環境では、ディレクトリの区切り文字は"/"か"\"が使えます。末尾に"/"や"\"は付けません。
- html-dir.
- HTMLを生成するパス名。絶対パスでも相対パスでもかまいません。Windows環境では、ディレクトリの区切り文字は"/"か"\"が使えます。末尾に"/"や"\"は付けません。
- back-URL
- 記事一覧index.htmlに表示される「戻る」というリンクのURL。たとえば"../menu.html"など。
- user(省略可)
- 認証が必要なサーバに接続する場合のユーザー名。
- password(省略可)
- 認証が必要なサーバに接続する場合のパスワード。userとpasswordのどちから片方のみを省略することはできません。
プログラムについて、既知のバグ、仕様の制限など
- NNTPプロトコルは、RFC977を参照にしました(逆にいうと、それしか見ていません)。
- 認証については、Microsoft IIS 4.0のNNTPサーバで動作確認しました。
- HTMLの記事には対応していません。
- 添付ファイルのある記事(Multipart)には対応していません。
- ヘッダは、適当に解析しています。解析できない記事もあるかもしれません。
- ヘッダデータをオンメモリで処理しているため、記事の数に限界があるものと思われます。10,000件を超えるような場合は、適宜分割してください。
- ISO-2022-JP以外のエンコードの記事タイトルには対応していません。
- ISO-2022-JP以外のエンコードの記事本文は、うまくデコードできない場合があります。
現在把握している改善したほうがよい点
- サーバ接続後、グループを指定してから新規記事を受信開始するまでに時間がかかるので、プロトコルを見直す。
- 記事中のmessage ID、URL、メールアドレスをリンクに変換する。
- 複数のグループをアーカイブ化できるようにする。
- 現在は記事数*2のファイルができるので、記事の保存の方法を検討する。
ここに上がっていないものも含め、ご要望が多ければ取り組みたいと思います。
このプログラムの著作権は、作者である私「こんふりくと」が保有しています。
このプログラムを使用した結果として発生したいかなる損害についても、私「こんふりくと」は責任を負いません。
このプログラムについて雑誌などで紹介される場合には、作者までご連絡ください。インターネット上で紹介する場合にも、連絡していただければ幸いです(必須ではありません)。
自分で使うために作ったものですので、ごく単機能です。また、クラスの設計もいまひとつです。こんなものでも、ご利用いただければ幸いです。