version 1.21, 2002/10/08 15:09:36
|
version 1.23, 2002/10/08 18:45:33
|
Line 57 sub unescape {
|
Line 57 sub unescape {
|
return $str; |
return $str; |
} |
} |
|
|
|
# -------------------------------------------------------- Escape Special Chars |
|
|
|
sub escape { |
|
my $str=shift; |
|
$str =~ s/(\W)/"%".unpack('H2',$1)/eg; |
|
return $str; |
|
} |
|
|
|
|
# ------------------------------------------- Code to evaluate dynamic metadata |
# ------------------------------------------- Code to evaluate dynamic metadata |
|
|
Line 76 sub dynamicmeta {
|
Line 84 sub dynamicmeta {
|
my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//); |
my ($adomain,$aauthor)=($url=~/^(\w+)\/(\w+)\//); |
my $prodir=&propath($adomain,$aauthor); |
my $prodir=&propath($adomain,$aauthor); |
if (tie(%evaldata,'GDBM_File', |
if (tie(%evaldata,'GDBM_File', |
$prodir.'/nohist_resevaldata.db',&GDBM_READER,0640)) { |
$prodir.'/nohist_resevaldata.db',&GDBM_WRCREAT(),0640)) { |
my %sum=(); |
my %sum=(); |
my %cnt=(); |
my %cnt=(); |
my %listitems=('count' => 'add', |
my %listitems=('count' => 'add', |
Line 98 sub dynamicmeta {
|
Line 106 sub dynamicmeta {
|
foreach (keys %evaldata) { |
foreach (keys %evaldata) { |
my $key=&unescape($_); |
my $key=&unescape($_); |
if ($key=~/$regexp/) { |
if ($key=~/$regexp/) { |
if (defined($cnt{$1})) { $cnt{$1}++; } else { $cnt{$1}=1; } |
my $ctype=$1; |
unless ($listitems{$1} eq 'app') { |
if (defined($cnt{$ctype})) { |
if (defined($sum{$1})) { |
$cnt{$ctype}++; |
$sum{$1}+=$evaldata{$_}; |
} else { |
} else { |
$cnt{$ctype}=1; |
$sum{$1}=$evaldata{$_}; |
} |
} |
unless ($listitems{$ctype} eq 'app') { |
} else { |
if (defined($sum{$ctype})) { |
if (defined($sum{$1})) { |
$sum{$ctype}+=$evaldata{$_}; |
if ($evaldata{$_}) { |
} else { |
$sum{$1}.='<hr>'.$evaldata{$_}; |
$sum{$ctype}=$evaldata{$_}; |
} |
} |
} else { |
} else { |
$sum{$1}=''.$evaldata{$_}; |
if (defined($sum{$ctype})) { |
|
if ($evaldata{$_}) { |
|
$sum{$ctype}.='<hr>'.$evaldata{$_}; |
} |
} |
} |
} else { |
} |
$sum{$ctype}=''.$evaldata{$_}; |
foreach (keys %cnt) { |
} |
if ($listitems{$_} eq 'avg') { |
} |
$returnhash{$_}=int(($sum{$_}/$cnt{$_})*100.0+0.5)/100.0; |
if ($ctype eq 'count') { |
} elsif ($listitems{$_} eq 'cnt') { |
delete($evaldata{$_}); |
$returnhash{$_}=$cnt{$_}; |
} |
} else { |
} |
$returnhash{$_}=$sum{$_}; |
} |
} |
foreach (keys %cnt) { |
} |
if ($listitems{$_} eq 'avg') { |
|
$returnhash{$_}=int(($sum{$_}/$cnt{$_})*100.0+0.5)/100.0; |
|
} elsif ($listitems{$_} eq 'cnt') { |
|
$returnhash{$_}=$cnt{$_}; |
|
} else { |
|
$returnhash{$_}=$sum{$_}; |
|
} |
|
} |
|
if ($returnhash{'count'}) { |
|
my $newkey=$$.'_'.time.'_searchcat___'.&escape($url).'___count'; |
|
$evaldata{$newkey}=$returnhash{'count'}; |
} |
} |
untie(%evaldata); |
untie(%evaldata); |
} |
} |