X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=DPLA.pm;h=1ea8ec480f5fae597992bfd187b655acbf8b6acb;hb=0bba87180282519f469d7696c3efed63a38e955c;hp=31808d6584e8baea8cee747b92662e62b15642ac;hpb=eb4809ffe89cc83a68a1da0c4cb654b81d47e35e;p=Biblio-Z3950.git diff --git a/DPLA.pm b/DPLA.pm index 31808d6..1ea8ec4 100644 --- a/DPLA.pm +++ b/DPLA.pm @@ -54,7 +54,7 @@ sub diag { # @attr 1=1016 any sub usemap {{ - 4 => 'dpla.title', + 4 => 'dpla.title_keyword', 7 => 'dpla.isbn', 8 => 'dpla.keyword', # XXX fake 1003 => 'dpla.creator_keyword', @@ -139,7 +139,7 @@ sub next_marc { $fields->[$i]->[0] = $f; $fields->[$i]->[1] = ' '; $fields->[$i]->[2] = ' '; - push @{ $fields->[$i] }, $sf, $v->[$i]; + push @{ $fields->[$i] }, $sf, decode('utf-8', $v->[$i]); # decode here fixes API encoding error } } else { @@ -151,11 +151,19 @@ sub next_marc { diag "# marc ", $marc->as_formatted; - my $id = $item->{'dpla.id'} || warn "no dpla.id in ",dump($item); - $self->save_marc( "$id.marc", $marc->as_usmarc ); + warn dump( $marc->as_usmarc ); $self->mech->back; # return to search results for next page + my $id = $item->{'dpla.id'}; + + if ( ! $id ) { + warn "no dpla.id in ",dump($item); + return; + } + + $self->save_marc( "$id.marc", $marc->as_usmarc ); + return $id; }