--- index.cgi-orig Wed Feb 28 23:51:40 2001 +++ index.cgi Sat Apr 21 20:14:01 2001 @@ -36,7 +36,7 @@ $out = ""; # いわゆる出力buffer #$o = ""; # parse buffer -$ver = "0.9.10(Finalβ) 01/02/28 (C)yar-3,masato-3"; +$ver = "0.9.10 with link-extention 01/04/21 (C)yar-3,masato-3"; #$ver = "0.4.8 with PDX G/W pl7 00/02/29 (C)yar-3,masato"; # 改造したひとは、↑ここらへんを書きかえるとオリジナリティup $isystem = "http://yar-3.net/isystem/"; @@ -73,6 +73,11 @@ HOMECOMING => "KITAKU", ); +%ConvUrlTmpl = ( + ISBN => "http://www.bk1.co.jp/cgi-bin/srch/srch_result_book.cgi?idx=3&isbn=%param", + CD => "http://www.hmv.co.jp/search/title.asp?category=CATALOGUENO&keyword=%param", +); + @color_imode_ua = qw(D502 F502 SH821 P209is D209 F209); unshift(@INC, "."); @@ -1609,6 +1614,7 @@ my ($u) = @_; # $imodegw を定義しておくと、それ経由でアクセスするようになる。 + $u = &conv_url($u); qq(); } @@ -1723,6 +1729,35 @@ } } close(IN); +} + +sub conv_url +{ + my ($url) = @_; + + if ($url =~ /^#(\d{4})(\d{2})(\d{2})((\d+)(S(\d+))?)?$/ || + $url =~ /^#\{(\d{4}),(\d+),(\d+)(,(\d+)(,(\d+))?)?\}$/) { + my ($new, $sub) = ($5, $7); + my $year = $1; + my $month = sprintf("%02d", $2); + my $day = sprintf("%02d", $3); + my $abc = $3 < 11 ? 'a' : $3 < 21 ? 'b' : 'c'; + if (! $new) { + $url = "?$year$month$day"; + } elsif (! $sub) { + $url = "?$year$month$day" . "S$new"; + } else { + $url = "?$year$month$day" . "S$new"; + } + } elsif ($url =~ /^([A-Z]+):/) { + my $tag = $1; + my $param = $'; + if ($ConvUrlTmpl{$tag} ne '') { + $url = $ConvUrlTmpl{$tag}; + $url =~ s/%param/$param/eg; + } + } + $url; }