1 |
wakaba |
1.1 |
package SWE::DB::SuikaWiki3LastModified; |
2 |
|
|
use strict; |
3 |
|
|
|
4 |
|
|
require Encode::EUCJPSW; |
5 |
|
|
|
6 |
|
|
sub new ($) { |
7 |
|
|
my $self = bless { |
8 |
|
|
file_name => 'lastmodified.dat', |
9 |
|
|
}, shift; |
10 |
|
|
} # new |
11 |
|
|
|
12 |
wakaba |
1.2 |
sub _load_data ($) { |
13 |
wakaba |
1.1 |
my $self = shift; |
14 |
|
|
|
15 |
|
|
open my $file, '<', $self->{file_name} or die "$0: $self->{file_name}: $!"; |
16 |
|
|
local $/ = undef; |
17 |
|
|
my $val = <$file>; |
18 |
|
|
close $file; |
19 |
|
|
|
20 |
|
|
if ($val =~ s!^\#\?SuikaWikiMetaInfo/0.9[^\x02]*\x02!!s) { |
21 |
|
|
$self->{data} = {map {(Encode::decode ('euc-jp-sw', $_->[0]), $_->[1])} |
22 |
|
|
map {[split /\x1F/, $_, 2]} split /\x1E/, $val}; |
23 |
|
|
} |
24 |
|
|
|
25 |
wakaba |
1.2 |
$self->{data_loaded} = 1; |
26 |
|
|
} # _load_data |
27 |
wakaba |
1.1 |
|
28 |
|
|
sub get_data ($$) { |
29 |
wakaba |
1.2 |
my ($self, $page_name) = @_; |
30 |
|
|
$self->_load_data unless $self->{data_loaded}; |
31 |
wakaba |
1.1 |
|
32 |
wakaba |
1.3 |
# $page_name =~ s/ /\x2F\x2F/g; |
33 |
wakaba |
1.2 |
return $self->{data}->{$page_name}; |
34 |
wakaba |
1.1 |
} # get_data |
35 |
|
|
|
36 |
|
|
1; |