year in 260c for Koha
[Biblio-Z3950.git] / AlephTR.pm
index 16f4dfa..be3e110 100644 (file)
@@ -129,10 +129,9 @@ warn "parse $nr";
 
                my $html = $mech->content;
 
-#diag $html;
-
                sub field {
                        my ( $f, $v ) = @_;
+
                        $v =~ s/\Q \E/ /gs;
                        $v =~ s/\s+$//gs;
 warn "## $f\t[$v]\n";
@@ -149,21 +148,24 @@ warn "## $f\t[$v]\n";
                        }
 
                        if ( $v !~ s/^\|// ) { # no subfields
-                               $marc->add_fields( $f, $v );
+                               $marc->add_fields( $f, $v ) unless $f >= 900;
 warn "## ++ ", dump( $f, $v );
                                return;
                        }
 
                        my ($i1,$i2) = (' ',' ');
-                       ($i1,$i2) = ($2,$3 || ' ') if $f =~ s/^(...)(.)(.)?/$1/;
+                       ($i1,$i2) = ($2,$3) if $f =~ s/^(...)(.)?(.)?/$1/;
                        my @sf = split(/\|/, $v);
                        @sf = map { s/^(\w)\s+//; { $1 => $_ } } @sf;
 #warn "## sf = ", dump(@sf);
-                       $marc->add_fields( $f, $i1, $i2, @sf );
+                       $i1 ||= ' ';
+                       $i2 ||= ' ';
+                       $marc->add_fields( $f, $i1, $i2, @sf ) unless $f >= 900;
 warn "## ++ ", dump( $f, $i1, $i2, @sf );
                }
 
-               $html =~ s|<tr>\s*?<td[^>]*class=td1[^>]*>(.+?)</td>\s*?<td class=td1>(.+?)</td>\s*</tr>|field($1,$2)|ges;
+               $html =~ s|<tr>\s*?<td[^>]*class=td1[^>]*>(.+?)</td>\s*?<td class=td1>(.+?)</td>\s*?</tr>|field($1,$2)|ges;
+
                diag "# hash ",dump($hash);
                diag "# marc ", $marc->as_formatted;