--- trunk/run.pl 2005/12/18 21:06:39 285 +++ trunk/run.pl 2005/12/18 22:16:39 288 @@ -9,7 +9,7 @@ use WebPAC::Common 0.02; use WebPAC::Lookup; -use WebPAC::Input::ISIS 0.02; +use WebPAC::Input 0.03; use WebPAC::Store 0.03; use WebPAC::Normalize::XML; use WebPAC::Output::TT; @@ -74,25 +74,31 @@ $log->info("database $database doesn't have inputs defined"); } + my @supported_inputs = keys %{ $config->{webpac}->{inputs} }; + foreach my $input (@inputs) { my $type = lc($input->{type}); - 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)); my $lookup = new WebPAC::Lookup( lookup_file => $input->{lookup}, ); - $log->info("working on input $input->{path} [$input->{type}]"); + my $input_module = $config->{webpac}->{inputs}->{$type}; + + $log->info("working on input $input->{path} [$input->{type}] using $input_module"); - my $isis = new WebPAC::Input::ISIS( + my $input_db = new WebPAC::Input( + module => $input_module, code_page => $config->{webpac}->{webpac_encoding}, - limit_mfn => $input->{limit}, + limit => $input->{limit}, lookup => $lookup, ); + $log->logdie("can't create input using $input_module") unless ($input); - my $maxmfn = $isis->open( + my $maxmfn = $input_db->open( path => $input->{path}, code_page => $input->{encoding}, # database encoding ); @@ -119,9 +125,9 @@ ); } - for ( 0 ... $isis->size ) { + for ( 0 ... $input_db->size ) { - my $row = $isis->fetch || next; + my $row = $input_db->fetch || next; my $mfn = $row->{'000'}->[0] || die "can't find MFN";