namazu-ml(avocado)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: NetNews記事の検索に関して
- From: Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx>
- Date: Thu, 28 Jan 1999 12:24:07 +0900
- X-ml-name: namazu
- X-mail-count: 01940
古川です。
>> On Wed, 27 Jan 1999 06:13:46 +0900, Kazuhiro Yamaguchi <yamak@xxxxxxxxxxxxxxxxxx> said:
> 1)Namazuを改造して,Indexをつくる際に,ファイルではなく,
> NetNews記事内のMessage-IDに対してリンクを張るようにする.
-> Newsのブラウザが立ち上がり,Message-IDの記事が読める
> 2)Newsの記事をそれらしいhtml形式に直してくれるcgiを書いて
> /etc/namazu.conf等で,このcgi経由で記事を見に行くようなリンクが
> つくられるようにごまかす.
-> Webのブラウザからでも,それなりに整形された記事が読める
3) データベースを書き換えて、HREF の中身を、"news:..." に置き換える
というスクリプトを作ってみました。Message-ID は NMZ.field.message-id
から読みこんでいます。
NMZ.(f|fi|r) を書き換えます。
すみませんが、簡単なチェックしかしていないので、バグのある可能性はあり
ます。バックアップをとって実行することをお勧めします。
pnamazu に付いている、nmztxt.pl というものが必要です。
------------------------------ ここから ------------------------------
#!/usr/local/bin/perl5
require 'nmztxt.pl'; # from pnamazu
# テンポラリファイルの設定
$FI = 'FLIST_I.tmp';
$FO = 'FLIST_O.tmp';
&nmztxt::init('NMZ');
# データベース -> テキストの変換
&nmztxt::flist2txt($FI);
if (open(MID, "$nmztxt::DbPath.field.message-id")){
open(FI, $FI);
open(FO, ">$FO");
$/ = '';
while (defined($felem = <FI>)){
local($/) = "\n";
last unless defined($mesid = <MID>);
chomp $mesid;
$mesid =~ s/^\<//;
$mesid =~ s/\>$//;
($fileno, $r, $dt, $st, $summary, $dd) = split(/\n/, $felem, 6);
$st =~ s/(HREF\=\")[^\"]*/$1news:$mesid/;
$dd =~ s/(HREF\=\")[^\"]*(\">)[^\<]*/$1news:$mesid$2$mesid/;
$felem = "$fileno\n$r\n$dt\n$st\n$summary\n$dd";
print FO "$felem\n\n";
}
close(FI);
close(FO);
# データベースに書き戻す
&nmztxt::txt2flist($FO);
&nmztxt::end;
unlink($FO);
}
unlink($FI);
------------------------------ ここまで ------------------------------
# よく似たメールを、昨日も書いたような…
--
ヤマハ(株)ピアノプレーヤ設計課
古川 令
furukawa@xxxxxxxxxxxxxxxx