From 41c7940991d0de674510ad95fa5b4c196e29cb62 Mon Sep 17 00:00:00 2001 From: Andreas Romeyke <andreas.romeyke@slub-dresden.de> Date: Fri, 5 Apr 2024 18:46:42 +0200 Subject: [PATCH] - bugfix, more specific check_lzaid() needed - bugfix, fake lza_id generation should match check_lzaid() tests --- perl/exit_strategy.pl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/perl/exit_strategy.pl b/perl/exit_strategy.pl index ec5d2fa..6f291ad 100644 --- a/perl/exit_strategy.pl +++ b/perl/exit_strategy.pl @@ -57,7 +57,8 @@ use XML::LibXML; sub check_lzaid ($lza_id) { my $rx_up=qr{[A-Za-z0-9_-]+}; # archive name & internal workflow my $rx_lw=qr{[a-z0-9_-]+}; # external workflow & external id - return ($lza_id =~ m/^$rx_up:$rx_up:$rx_up:$rx_lw:$rx_lw$/); + # SLUB:LZA:Kitodo:testcases:fileoriginalpath_with_http + return ($lza_id =~ m/^SLUB:LZA:$rx_up:$rx_lw:$rx_lw$/); }; @@ -269,13 +270,13 @@ SQL_DELETE_PLAN } my $lza_id_kv = List::Util::first { my ($dckey, $dcvalue) = @{$_}; - ($dckey eq 'dc:identifier') - and (check_lzaid($dcvalue)) + (($dckey eq 'dc:identifier') + and (check_lzaid($dcvalue) == 1)) } @{$refhash->{"dcrecords"}}; my $lza_id = @{$lza_id_kv}[1]; if (!defined $lza_id) { if (!exists( $lza_id_counter_hash{ $ieid} )) { - $lza_id = sprintf("SLUB:LZA:migration_from_rosetta:unknown_%05lu", $lza_id_counter++); + $lza_id = sprintf("SLUB:LZA:migration_from:rosetta:unknown_%05lu", $lza_id_counter++); warn("no lza id detected on $refhash->{filename}, using $lza_id now!"); $lza_id_counter_hash{ $ieid} = $lza_id; } else { -- GitLab