9 |
|
|
10 |
use WebPAC::Common 0.02; |
use WebPAC::Common 0.02; |
11 |
use WebPAC::Lookup; |
use WebPAC::Lookup; |
12 |
use WebPAC::Input::ISIS; |
use WebPAC::Input 0.03; |
13 |
use WebPAC::Store 0.03; |
use WebPAC::Store 0.03; |
14 |
use WebPAC::Normalize::XML; |
use WebPAC::Normalize::XML; |
15 |
use WebPAC::Output::TT; |
use WebPAC::Output::TT; |
74 |
$log->info("database $database doesn't have inputs defined"); |
$log->info("database $database doesn't have inputs defined"); |
75 |
} |
} |
76 |
|
|
77 |
|
my @supported_inputs = keys %{ $config->{webpac}->{inputs} }; |
78 |
|
|
79 |
foreach my $input (@inputs) { |
foreach my $input (@inputs) { |
80 |
|
|
81 |
my $type = lc($input->{type}); |
my $type = lc($input->{type}); |
82 |
|
|
83 |
die "I know only how to handle input type isis, not '$type'!\n" unless ($type eq 'isis'); |
die "I know only how to handle input types ", join(",", @supported_inputs), " not '$type'!\n" unless (grep(/$type/, @supported_inputs)); |
84 |
|
|
85 |
my $lookup = new WebPAC::Lookup( |
my $lookup = new WebPAC::Lookup( |
86 |
lookup_file => $input->{lookup}, |
lookup_file => $input->{lookup}, |
87 |
); |
); |
88 |
|
|
89 |
$log->info("working on input $input->{path} [$input->{type}]"); |
my $input_module = $config->{webpac}->{inputs}->{$type}; |
90 |
|
|
91 |
|
$log->info("working on input $input->{path} [$input->{type}] using $input_module"); |
92 |
|
|
93 |
my $isis = new WebPAC::Input::ISIS( |
my $input_db = new WebPAC::Input( |
94 |
|
module => $input_module, |
95 |
code_page => $config->{webpac}->{webpac_encoding}, |
code_page => $config->{webpac}->{webpac_encoding}, |
96 |
limit_mfn => $input->{limit}, |
limit => $input->{limit}, |
97 |
lookup => $lookup, |
lookup => $lookup, |
98 |
); |
); |
99 |
|
$log->logdie("can't create input using $input_module") unless ($input); |
100 |
|
|
101 |
my $maxmfn = $isis->open( |
my $maxmfn = $input_db->open( |
102 |
filename => $input->{path}, |
path => $input->{path}, |
103 |
code_page => $input->{encoding}, # database encoding |
code_page => $input->{encoding}, # database encoding |
104 |
); |
); |
105 |
|
|
125 |
); |
); |
126 |
} |
} |
127 |
|
|
128 |
for ( 0 ... $isis->size ) { |
foreach my $pos ( 0 ... $input_db->size ) { |
129 |
|
|
130 |
|
my $row = $input_db->fetch || next; |
131 |
|
|
132 |
my $row = $isis->fetch || next; |
my $mfn = $row->{000}->[0] || $row->{000} || die "can't find MFN"; |
133 |
|
|
134 |
my $mfn = $row->{'000'}->[0] || die "can't find MFN"; |
if ($mfn =~ m#^\d+$#) { |
135 |
|
$log->warn("record $pos doesn't have valid MFN but '$mfn', using $pos"); |
136 |
|
$mfn = $pos; |
137 |
|
$row->{000}->[0] = $pos; |
138 |
|
} |
139 |
|
|
140 |
my $ds = $n->data_structure($row); |
my $ds = $n->data_structure($row); |
141 |
|
|