133 |
"clean" => \$clean, |
"clean" => \$clean, |
134 |
"one=s" => \$only_filter, |
"one=s" => \$only_filter, |
135 |
"only=s" => \$only_filter, |
"only=s" => \$only_filter, |
136 |
"config" => \$config_path, |
"config=s" => \$config_path, |
137 |
"debug+" => \$debug, |
"debug+" => \$debug, |
138 |
"stats" => \$stats, |
"stats" => \$stats, |
139 |
"validate=s" => \$validate_path, |
"validate=s" => \$validate_path, |
311 |
|
|
312 |
foreach my $output ( @outputs ) { |
foreach my $output ( @outputs ) { |
313 |
|
|
314 |
warn '## output = ',dump( $output ); |
#warn '## output = ',dump( $output ); |
315 |
|
|
316 |
my $module = $output->{module} || $log->logdie("need module in output section of $database"); |
my $module = $output->{module} || $log->logdie("need module in output section of $database"); |
317 |
$module = 'WebPAC::Output::' . $module unless $module =~ m/::/; |
$module = 'WebPAC::Output::' . $module unless $module =~ m/::/; |
514 |
if ( $out->can('input') ) { |
if ( $out->can('input') ) { |
515 |
$out->input( $input_name ); |
$out->input( $input_name ); |
516 |
} else { |
} else { |
517 |
$log->warn("output filter $out doesn't support input name"); |
$log->warn("output filter ",ref($out)," doesn't support input name"); |
518 |
} |
} |
519 |
} |
} |
520 |
|
|
543 |
next; # validation doesn't create any output |
next; # validation doesn't create any output |
544 |
} |
} |
545 |
|
|
546 |
my $ds = WebPAC::Normalize::data_structure( |
if ( my $ds = WebPAC::Normalize::data_structure( |
547 |
row => $row, |
row => $row, |
548 |
rules => $rules, |
rules => $rules, |
549 |
lookup => $lookup_hash, |
lookup => $lookup_hash, |
557 |
id => $mfn, |
id => $mfn, |
558 |
); |
); |
559 |
}, |
}, |
560 |
); |
) ) { # if |
561 |
|
|
562 |
$log->debug("ds = ", sub { dump($ds) }) if ($ds); |
$log->debug("ds = ", sub { dump($ds) }); |
563 |
|
|
564 |
$store->save_ds( |
$store->save_ds( |
565 |
database => $database, |
database => $database, |
566 |
input => $input_name, |
input => $input_name, |
567 |
id => $mfn, |
id => $mfn, |
568 |
ds => $ds, |
ds => $ds, |
569 |
) if ($ds && !$stats); |
) if !$stats; |
570 |
|
|
571 |
$indexer->add( |
$indexer->add( |
572 |
id => "${input_name}/${mfn}", |
id => "${input_name}/${mfn}", |
573 |
ds => $ds, |
ds => $ds, |
574 |
type => $config->get($indexer_config)->{type}, |
type => $config->get($indexer_config)->{type}, |
575 |
) if ($indexer && $ds); |
) if $indexer; |
576 |
|
|
577 |
if ($marc) { |
if ($marc) { |
578 |
my $i = 0; |
my $i = 0; |
579 |
|
|
580 |
while (my $fields = WebPAC::Normalize::_get_marc_fields( fetch_next => 1 ) ) { |
while (my $fields = WebPAC::Normalize::_get_marc_fields( fetch_next => 1 ) ) { |
581 |
$marc->add( |
$marc->add( |
582 |
id => $mfn . ( $i ? "/$i" : '' ), |
id => $mfn . ( $i ? "/$i" : '' ), |
583 |
fields => $fields, |
fields => $fields, |
584 |
leader => WebPAC::Normalize::_get_marc_leader(), |
leader => WebPAC::Normalize::_get_marc_leader(), |
585 |
row => $row, |
row => $row, |
586 |
); |
); |
587 |
$i++; |
$i++; |
588 |
|
} |
589 |
|
|
590 |
|
$log->info("Created $i instances of MFN $mfn\n") if ($i > 1); |
591 |
} |
} |
592 |
|
|
593 |
$log->info("Created $i instances of MFN $mfn\n") if ($i > 1); |
foreach my $out ( @output_modules ) { |
594 |
} |
$out->add( $mfn, $ds ) if $out->can('add'); |
595 |
|
} |
596 |
|
|
597 |
foreach my $out ( @output_modules ) { |
} else { |
598 |
$out->add( $mfn, $ds ) if $out->can('add'); |
$log->warn("record $pos didn't produce any output after normalization rules!"); |
599 |
} |
} |
600 |
|
|
601 |
} |
} |