#!/usr/bin/perl #use use strict; use URI; use HTTP::Date; use NKF; # require 'jcode.pl'; # &jcode::init(); # ($#ARGV >= 0) or die "need argument as MICAN_DI file!"; if ($#ARGV >=0) { $FILE = shift; } my $RS = $/;$/="\n\n"; if ($#ARGV >= 0) { open(MDI,$FILE); } else { open(MDI, "-"); } print "
    \n"; while(){ my (%rec)=(); # my $time = 0; my @lines=split("\n"); foreach my $line (@lines){ my ($feature, $value) = split(/:\s*/,$line,2); my $lc_feature = lc $feature; # print STDERR "$lc_feature $value\n"; $rec{$lc_feature} = $value; } next unless ( exists $rec{'url'}); my $u = URI->new($rec{'url'}); my $url = $rec{'url'}; if ( exists $rec{'last-modified'} ){ $time = HTTP::Date::str2time($rec{'last-modified'}); }else{ $time = 0; } my ($date,$query) = &time2dq($time); $query = '' if ( (exists $rec{'server'}) && is_cern_like( $rec{'server'} ) ); $query .= $rec{'x-mican-fragment'} if ( exists $rec{'x-mican-fragment'} ); $url .= "?".$query if ( ( $query ) && not ( $u->query ) ); print "
  1. "; # for sort print ""; # print &make_href($url , $rec{'x-mican-title'}), " "; print $date, " : "; if ($rec{'title'}) { $disp_title = $rec{'title'}; } else { $disp_title = $rec{'url'}; } print &make_href($url , $disp_title), " / "; if ($rec{'author'}) { print $rec{'author'}; } # for Asahina-Antenna's DI else { print $rec{'author-name'}; } print "\n
    \n"; # Comment out by ArctanX # $auth = ( exists $rec{'x-mican-authorized'} ) # ? $rec{'x-mican-authorized'} : '__'; # Comment out by ArctanX # print $date," ($auth)
    \n"; } close(MDI); $/ = $RS; print "
\n"; exit; ### ## &make_href( $uri, $link) ## 一番目の引数をURI、二番目の引数をリンク文字列と解釈して、 ## $linkをつくる。 # sub make_href{ my $uri = shift; my $link = shift; my $href; $href = "$link"; } sub time2dq{ my $time = shift; my $date = ""; my $query = ""; if ( $time == 0 ){ return ("____/__/__ __:__",''); }else{ my ($min,$hour,$mday,$mon,$year)=(localtime($time))[1..5]; $mon++; $year += 1900; $yy = substr ($year,2); $mon = sprintf "%02d",$mon; $mday = sprintf "%02d",$mday; $hour = sprintf "%02d",$hour; $min = sprintf "%02d",$min; return ("$year/$mon/$mday $hour:$min","$mon$mday$hour$min"); } } sub is_cern_like{ $_ = shift; if ((/CERN/o) || (/Microsoft\-Internet\-Information\-Server/o) # || (m%Netscape\-Comm(unications|erce)\/1\.1$%o) || (m%Netscape\-Enterprise\/3\.0$%o) || (/IBM\-ICS/o) ) { return 1; }else{ return 0; } }