From c6ce21a8f241d028c5df5c3275df264b1857fe23 Mon Sep 17 00:00:00 2001 From: in2 Date: Thu, 3 Jul 2003 05:49:06 +0000 Subject: move BBSFileHeader.pm to util/ git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@1002 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- blog/BBSFileHeader.pm | 56 --------------------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 blog/BBSFileHeader.pm (limited to 'blog') diff --git a/blog/BBSFileHeader.pm b/blog/BBSFileHeader.pm deleted file mode 100644 index 4865da8b..00000000 --- a/blog/BBSFileHeader.pm +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/perl -package BBSFileHeader; -use strict; -use IO::Handle; -use Data::Dumper; - -use fields qw/dir fh cache/; - -sub TIEHASH -{ - my($class, $dir) = @_; - my $self = fields::new($class); - - open $self->{fh}, "<$dir/.DIR"; - return undef if( !$self->{fh} ); - - $self->{dir} = $dir; - return $self; -} - -sub FETCH -{ - my($self, $k) = @_; - - return $self->{dir} if( $k eq 'dir' ); - return ((-s "$self->{dir}/.DIR") / 128) if( $k eq 'num' ); - - my($num, $key) = $k =~ /(.*)\.(.*)/; - my($t, %h); - - $num += $self->FETCH('num') if( $num < 0 ); - - return $self->{cache}{$num}{$key} if( $self->{cache}{$num}{$key} ); - - seek($self->{fh}, $num * 128, 0); - $self->{fh}->read($t, 128); - - if( $key eq 'isdir' ){ - my $fn = "$self->{dir}/" . $self->FETCH("$num.filename"); - return (-d $fn); - } - elsif( $key eq 'content' ){ - my $fn = "$self->{dir}/" . $self->FETCH("$num.filename"); - return `/bin/cat $fn`; - } - else{ - ($h{filename}, $h{recommend}, $h{owner}, $h{date}, $h{title}) = - unpack('Z33cZ14Z6Z65', $t); - $h{title} = substr($h{title}, 3); - $self->{cache}{$num}{$_} = $h{$_} - foreach( 'filename', 'owner', 'date', 'title' ); - return $h{$key}; - } -} - -1; -- cgit v1.2.3