PyukiWiki CVS Commit
pyuki****@lists*****
2012年 1月 30日 (月) 21:20:30 JST
Index: PyukiWiki-Devel-UTF8/lib/Nana/Cache.pm diff -u PyukiWiki-Devel-UTF8/lib/Nana/Cache.pm:1.249 PyukiWiki-Devel-UTF8/lib/Nana/Cache.pm:1.250 --- PyukiWiki-Devel-UTF8/lib/Nana/Cache.pm:1.249 Mon Jan 30 09:24:51 2012 +++ PyukiWiki-Devel-UTF8/lib/Nana/Cache.pm Mon Jan 30 21:20:30 2012 @@ -1,6 +1,6 @@ ###################################################################### # Cache.pm - This is PyukiWiki, yet another Wiki clone. -# $Id: Cache.pm,v 1.249 2012/01/30 00:24:51 papu Exp $ +# $Id: Cache.pm,v 1.250 2012/01/30 12:20:30 papu Exp $ # # "Nana::Cache" version 0.2 $$ # Author: Nanami @@ -34,6 +34,7 @@ size=>$hash{size}, use=>$hash{use}, expire=>$hash{expire}, + crlf=>$hash{crlf}, }; return bless $self, $class; } @@ -102,7 +103,7 @@ my $f=sprintf("%s/%s.%s",$self->{dir},$fname,$self->{ext}); if(-r $f) { $buf=Nana::File::lock_fetch($f); - $buf=~s/(\r|\n)//g; + $buf=~s/(\r|\n)//g if($self->crlf eq 1); return $buf; } return ''; Index: PyukiWiki-Devel-UTF8/lib/Nana/Logs.pm diff -u PyukiWiki-Devel-UTF8/lib/Nana/Logs.pm:1.101 PyukiWiki-Devel-UTF8/lib/Nana/Logs.pm:1.102 --- PyukiWiki-Devel-UTF8/lib/Nana/Logs.pm:1.101 Mon Jan 30 19:21:14 2012 +++ PyukiWiki-Devel-UTF8/lib/Nana/Logs.pm Mon Jan 30 21:20:30 2012 @@ -1,6 +1,6 @@ ###################################################################### # Logs.pm - This is PyukiWiki, yet another Wiki clone. -# $Id: Logs.pm,v 1.101 2012/01/30 10:21:14 papu Exp $ +# $Id: Logs.pm,v 1.102 2012/01/30 12:20:30 papu Exp $ # # "Nana::Logs" version 0.2 $$ # Author: Nanami @@ -236,205 +236,264 @@ my $counts=0; - foreach my $log(split(/\n/,$data)) { - $counts++; - my($hosts,$dates,$user,$method,$cmd,$lang,$page,$agent,$refer) - = split(/\t/,$log); - my($host,$ip)=split(/ /,$hosts); - my($date,$week,$time)=split(/ /,$dates); - my($date_y, $date_m, $date_d)=split(/-/,$date); - my($time_h, $time_m, $time_s)=split(/:/,$time); - $dates{$date}++; - $hours{$time_h}++; - $weeks{$week}++; - - # ãã¼ã¸ã®ã«ã¦ã³ã - if($cmd eq "read") { - $page{"$lang\t$page"}++; - $pages++; - } + my $cache=new Nana::Cache ( + ext=>"logs", + files=>10000, + dir=>$::cache_dir, + size=>100000, + use=>1, + expire=>365*24*60*60, + crlf=>1 + ); - # ãã¼ã¸æ¸ãè¾¼ã¿ã®ã«ã¦ã³ã - if(($cmd eq "write" || $cmd=~/edit/ || $cmd=~/comment/ - || $cmd=~/article/ || $cmd eq "bugtrack" || $cmd eq "vote") - && $method eq "POST") { - $write{"$lang\t$page"}++; - $writes++; - } + my $cachefile="logs_$target"; + my $buf=$cache->read($cachefile,1); - # ãªã³ã¯ã®ã«ã¦ã³ã - if($cmd eq "ck") { - $links{"$lang\t$page"}++; - } + if($buf ne '') { + foreach(split(/\n/,$buf)) { + my($k,$n,$v)=split(/\t/,$_); + $counts=$v if($k eq "count"); + $pages=$v if($k eq "pagecount"); + $writes=$v if($k eq "writecount"); + $attachdownloads=$v if($k eq "attachdownloads"); + $attachposts=$v if($k eq "attachposts"); + $dates{$n}=$v if($k eq "dates"); + $hours{$n}=$v if($k eq "hours"); + $weeks{$n}=$v if($k eq "weeks"); + $hosts{$n}=$v if($k eq "hosts"); + $countries{$n}=$v if($k eq "countries"); + $topdomains{$n}=$v if($k eq "topdomains"); + $domains{$n}=$v if($k eq "domains"); + $os{$n}=$v if($k eq "uaos"); + $browsertypes{$n}=$v if($k eq "browsertype"); + $browserversions{$n}=$v if($k eq "browserversion"); + $pages{$n}=$v if($k eq "pages"); + $links{$n}=$v if($k eq "links"); + $write{$n}=$v if($k eq "write"); + $attachdownload{$n}=$v if($k eq "attachdownload"); + $attachpost{$n}=$v if($k eq "attachpost"); + $users{$n}=$v if($k eq "user"); + $referers{$n}=$v if($k eq "referer"); + $agents{$n}=$v if($k eq "agents"); + $allreferers{$n}=$v if($k eq "allreferer"); + $searchengines{$n}=$v if($k eq "searchengine"); + $keywords{$n}=$v if($k eq "keywords"); + } + } else { + foreach my $log(split(/\n/,$data)) { + $counts++; + my($hosts,$dates,$user,$method,$cmd,$lang,$page,$agent,$refer) + = split(/\t/,$log); + my($host,$ip)=split(/ /,$hosts); + my($date,$week,$time)=split(/ /,$dates); + my($date_y, $date_m, $date_d)=split(/-/,$date); + my($time_h, $time_m, $time_s)=split(/:/,$time); + $dates{$date}++; + $hours{$time_h}++; + $weeks{$week}++; + + # ãã¼ã¸ã®ã«ã¦ã³ã + if($cmd eq "read") { + $page{"$lang\t$page"}++; + $pages++; + } - # æ·»ä»ãã¦ã³ãã¼ãã®ã«ã¦ã³ã - if($cmd eq "attach-open") { - $attachdownload{"$lang\t$page"}++; - $attachdownloads++; - } + # ãã¼ã¸æ¸ãè¾¼ã¿ã®ã«ã¦ã³ã + if(($cmd eq "write" || $cmd=~/edit/ || $cmd=~/comment/ + || $cmd=~/article/ || $cmd eq "bugtrack" || $cmd eq "vote") + && $method eq "POST") { + $write{"$lang\t$page"}++; + $writes++; + } - # æ·»ä»ã¢ãããã¼ãã®ã«ã¦ã³ã - if(($cmd eq "attach-post" || $cmd eq "attach-delete") - && $method eq "POST") { - $attachpost{"$lang\t$page"}++; - $attachposts++; - } + # ãªã³ã¯ã®ã«ã¦ã³ã + if($cmd eq "ck") { + $links{"$lang\t$page"}++; + } - # æ·»ä»ã¢ãããã¼ãã®ã«ã¦ã³ã - if($cmd eq "attach-post" || $cmd eq "attach-delete") { - $attachpost{"$lang\t$page"}++; - $attachposts++; - } + # æ·»ä»ãã¦ã³ãã¼ãã®ã«ã¦ã³ã + if($cmd eq "attach-open") { + $attachdownload{"$lang\t$page"}++; + $attachdownloads++; + } - # ã¦ã¼ã¶ã¼ã®ã«ã¦ã³ã - $user{$user}++; + # æ·»ä»ã¢ãããã¼ãã®ã«ã¦ã³ã + if(($cmd eq "attach-post" || $cmd eq "attach-delete") + && $method eq "POST") { + $attachpost{"$lang\t$page"}++; + $attachposts++; + } - # ãã¹ãã®ã«ã¦ã³ã - $hosts{"$hosts ($ip)"}++; - my $domain; -# my $tmpcountries=lc $host; - my $tmpdomain=lc $host; -# if($tmpcountries{$ip} eq '') { -# foreach(keys %DomainsHashIDLib) { -# my $top=$_; -# my $regex=$_; -# next if($regex=/\./); -# if($tmpcountries=~/\.$regex$/) { -# $tmpcountries{$ip}="$top ($DomainsHashIDLib{$top})"; -# my $country=$tmpcountries; -# $country=~s/\.$regex$//g; -# $domain=~s/.*\.//g; -# last; -# } -# } -# } - if($tmptopdomains{$ip} eq '') { - foreach(keys %DomainsHashIDLib) { - my $top=$_; - my $regex=$_; - $regex=~s/\./\\\./g; - if($tmpdomain=~/\.$regex$/) { - $tmptopdomains{$ip}="$top ($DomainsHashIDLib{$top})"; - my $domain=$tmpdomain; - $domain=~s/\.$regex$//g; - $domain=~s/.*\.//g; - $tmpdomains{$ip}="$domain.$top"; - last; - } + # æ·»ä»ã¢ãããã¼ãã®ã«ã¦ã³ã + if($cmd eq "attach-post" || $cmd eq "attach-delete") { + $attachpost{"$lang\t$page"}++; + $attachposts++; } + + # ã¦ã¼ã¶ã¼ã®ã«ã¦ã³ã + $user{$user}++; + + # ãã¹ãã®ã«ã¦ã³ã + $hosts{"$hosts ($ip)"}++; + my $domain; + my $tmpdomain=lc $host; if($tmptopdomains{$ip} eq '') { - my $regipv4='^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' - + '|(::ffff:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'; - my $regipv4='^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'; - my $regipv6='((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[ 0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?'; - if($ip=~/$regipv4/) { - $tmptopdomains{$ip}="IPV4 Address"; - } elsif($ip=~/$regipv6/) { - $tmptopdomains{$ip}="IPV6 Address"; - } else { - $tmptopdomains{$ip}=$host ? $host : $ip; + foreach(keys %DomainsHashIDLib) { + my $top=$_; + my $regex=$_; + $regex=~s/\./\\\./g; + if($tmpdomain=~/\.$regex$/) { + $tmptopdomains{$ip}="$top ($DomainsHashIDLib{$top})"; + my $domain=$tmpdomain; + $domain=~s/\.$regex$//g; + $domain=~s/.*\.//g; + $tmpdomains{$ip}="$domain.$top"; + last; + } } - $tmpdomains{$ip}=$host ? $host : $ip; - } - } - $topdomains{$tmptopdomains{$ip}}++; - $domains{$tmpdomains{$ip}}++; - - # ãã©ã¦ã¶ã¼ã®ã«ã¦ã³ã - $agents{$agent}++; - my $browser=lc $agent; - - if(! $uaos{$browser}) { - foreach my $regex(@OSSearchIDOrder) { - if($browser=~/$regex/) { - $uaos{$browser}=&target($OSHashLib{$OSHashID{$regex}}); - last; + if($tmptopdomains{$ip} eq '') { + my $regipv4='^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})' + + '|(::ffff:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'; + my $regipv4='^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'; + my $regipv6='((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2 [0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?'; + if($ip=~/$regipv4/) { + $tmptopdomains{$ip}="IPV4 Address"; + } elsif($ip=~/$regipv6/) { + $tmptopdomains{$ip}="IPV6 Address"; + } else { + $tmptopdomains{$ip}=$host ? $host : $ip; + } + $tmpdomains{$ip}=$host ? $host : $ip; } } - } - if(! $uaos{$browser}) { - $uaos{$browser}='Unknown'; - } - $os{$uaos{$browser}}++; + $topdomains{$tmptopdomains{$ip}}++; + $domains{$tmpdomains{$ip}}++; - if(! $uabrowser{$browser}) { - my $found = 0; - if(!$found) { - foreach(@RobotsSearchIDOrder) { - if($browser =~ /$_/) { - $uabrowser{$browser}='Robot'; - $uabrowserver{$browser}=&target($RobotsHashIDLib{$_}); - $found=1; + # ãã©ã¦ã¶ã¼ã®ã«ã¦ã³ã + $agents{$agent}++; + my $browser=lc $agent; + + if(! $uaos{$browser}) { + foreach my $regex(@OSSearchIDOrder) { + if($browser=~/$regex/) { + $uaos{$browser}=&target($OSHashLib{$OSHashID{$regex}}); last; } } } - if(!$found) { - foreach my $id(@BrowsersFamily) { - if($browser=~/$BrowsersVersionHashIDLib{$id}/) { - my $version=$2 eq '' ? $1 : $2; - if($id eq "safari") { - $version= - $BrowsersSafariBuildToVersionHash{$version} - . " ($version)"; + if(! $uaos{$browser}) { + $uaos{$browser}='Unknown'; + } + $os{$uaos{$browser}}++; + + if(! $uabrowser{$browser}) { + my $found = 0; + if(!$found) { + foreach(@RobotsSearchIDOrder) { + if($browser =~ /$_/) { + $uabrowser{$browser}='Robot'; + $uabrowserver{$browser}=&target($RobotsHashIDLib{$_}); + $found=1; + last; } - $found=1; - $uabrowser{$browser}=$BrowsersHashIDLib{$id}; - $uabrowserver{$browser}="$BrowsersHashIDLib{$id}/$version"; - last; } } - } - if(!$found) { - foreach (@BrowsersSearchIDOrder) { - if($browser =~ /$_/ ) { - my $browserver = $browser; - $browserver=~s/.*$_[_+\/ ]([\d\.]*).*/$1/; - $uabrowser{$browser}=$BrowsersHashIDLib{$_}; - $uabrowserver{$browser}="$_/$browserver"; - $found=1; - last; + if(!$found) { + foreach my $id(@BrowsersFamily) { + if($browser=~/$BrowsersVersionHashIDLib{$id}/) { + my $version=$2 eq '' ? $1 : $2; + if($id eq "safari") { + $version= + $BrowsersSafariBuildToVersionHash{$version} + . " ($version)"; + } + $found=1; + $uabrowser{$browser}=$BrowsersHashIDLib{$id}; + $uabrowserver{$browser}="$BrowsersHashIDLib{$id}/$version"; + last; + } + } + } + if(!$found) { + foreach (@BrowsersSearchIDOrder) { + if($browser =~ /$_/ ) { + my $browserver = $browser; + $browserver=~s/.*$_[_+\/ ]([\d\.]*).*/$1/; + $uabrowser{$browser}=$BrowsersHashIDLib{$_}; + $uabrowserver{$browser}="$_/$browserver"; + $found=1; + last; + } } } - } - if(!$found) { - $uabrowser{$browser}='Unknown'; - $uabrowserver{$browser}='Unknown'; + if(!$found) { + $uabrowser{$browser}='Unknown'; + $uabrowserver{$browser}='Unknown'; + } } - } - $browsertype{$uabrowser{$browser}}++; - $browserversion{$uabrowserver{$browser}}++; + $browsertype{$uabrowser{$browser}}++; + $browserversion{$uabrowserver{$browser}}++; - # ãªã³ã¯å ã®ã«ã¦ã³ã - $refer=~s/&/&/g; - $found=0; - - foreach(@SearchEnginesSearchIDOrder) { - if($refer=~/$_/) { - $searchengine{$SearchEnginesHashLib{$SearchEnginesHashID{$_}}}++; - my $query=$SearchEnginesKnownUrl{$SearchEnginesHashID{$_}}; - my $q=$refer; - $q=~s/\?/&/g; - foreach $u(split(/&/,$q)) { - if($u=~/^$query/) { - my $tmp=&decode($u); - $tmp=~s/^$query//g; - my $word=&code_convert(\$tmp,$::defaultcode); - $keywords{"$page - $word"}++; + # ãªã³ã¯å ã®ã«ã¦ã³ã + $refer=~s/&/&/g; + $found=0; + + foreach(@SearchEnginesSearchIDOrder) { + if($refer=~/$_/) { + $searchengine{$SearchEnginesHashLib{$SearchEnginesHashID{$_}}}++; + my $query=$SearchEnginesKnownUrl{$SearchEnginesHashID{$_}}; + my $q=$refer; + $q=~s/\?/&/g; + foreach $u(split(/&/,$q)) { + if($u=~/^$query/) { + my $tmp=&decode($u); + $tmp=~s/^$query//g; + my $word=&code_convert(\$tmp,$::defaultcode); + $keywords{"$page - $word"}++; + } } } } - } - if(!$found) { - $referer{$refer}++; + if(!$found) { + $referer{$refer}++; + } + $allreferer{$refer}++; } - $allreferer{$refer}++; + $buf=<<EOM; +count\t\t$counts +pagecount\t\t$pages +writecount\t\t$writes +attachdownloads\t\t$attachdownloads +attachposts\t\t$attachposts +EOM + foreach(keys %dates) { $buf.="dates\t$_\t$dates{$_}\n"; } + foreach(keys %hours) { $buf.="hours\t$_\t$hours{$_}\n"; } + foreach(keys %weeks) { $buf.="weeks\t$_\t$weeks{$_}\n"; } + foreach(keys %hosts) { $buf.="hosts\t$_\t$hosts{$_}\n"; } +# foreach(keys %countries) { $buf.="countries\t$_\t$countries{$_}\n"; } + foreach(keys %topdomains) { $buf.="topdomains\t$_\t$topdomains{$_}\n"; } + foreach(keys %domains) { $buf.="domains\t$_\t$domains{$_}\n"; } + foreach(keys %os) { $buf.="uaos\t$_\t$os{$_}\n"; } + foreach(keys %domains) { $buf.="domains\t$_\t$domains{$_}\n"; } + foreach(keys %browsertypes) { $buf.="browsertype\t$_\t$browsertypes{$_}\n"; } + foreach(keys %browserversions) { $buf.="browserversions\t$_\t$browserversions{$_}\n"; } + foreach(keys %pages) { $buf.="pages\t$_\t$pages{$_}\n"; } + foreach(keys %links) { $buf.="links\t$_\t$links{$_}\n"; } + foreach(keys %write) { $buf.="write\t$_\t$write{$_}\n"; } + foreach(keys %attachdownload) { $buf.="attachdownload\t$_\t$attachdownload{$_}\n"; } + foreach(keys %attachpost) { $buf.="attachpost\t$_\t$attachpost{$_}\n"; } + foreach(keys %users) { $buf.="user\t$_\t$users{$_}\n"; } + foreach(keys %referers) { $buf.="referer\t$_\t$referers{$_}\n"; } + foreach(keys %agents) { $buf.="agent\t$_\t$agents{$_}\n"; } + foreach(keys %allreferers) { $buf.="allreferer\t$_\t$allreferers{$_}\n"; } + foreach(keys %searchengines) { $buf.="searchengine\t$_\t$searchengines{$_}\n"; } + foreach(keys %keywords) { $buf.="keyword\t$_\t$keywords{$_}\n"; } + $cache->write($cachefile,$buf); } - return( count => $counts, pagecount => $pages, Index: PyukiWiki-Devel-UTF8/lib/Nana/YukiWikiDB_GZIP.pm diff -u PyukiWiki-Devel-UTF8/lib/Nana/YukiWikiDB_GZIP.pm:1.152 PyukiWiki-Devel-UTF8/lib/Nana/YukiWikiDB_GZIP.pm:1.153 --- PyukiWiki-Devel-UTF8/lib/Nana/YukiWikiDB_GZIP.pm:1.152 Mon Jan 30 19:21:14 2012 +++ PyukiWiki-Devel-UTF8/lib/Nana/YukiWikiDB_GZIP.pm Mon Jan 30 21:20:30 2012 @@ -1,6 +1,6 @@ ###################################################################### # YukiWikiDB_GZIP.pm - This is PyukiWiki, yet another Wiki clone. -# $Id: YukiWikiDB_GZIP.pm,v 1.152 2012/01/30 10:21:14 papu Exp $ +# $Id: YukiWikiDB_GZIP.pm,v 1.153 2012/01/30 12:20:30 papu Exp $ # # "Nana::YukiWikiDB_GZIP" version 0.6 $$ # Author: Nanami @@ -136,6 +136,6 @@ $key=$2; } $key =~ s/(.)/$::_dbmname_encode{$1}/g; - return ($mode, $self->{dir} . "/$key.txt"); + return ($mode, $self->{dir} . "/$key.txt.gz"); } 1;