Image-Synchronize
view release on metacpan or search on metacpan
t/Image-Synchronize.t view on Meta::CPAN
# -*- perl -*-
use Modern::Perl;
use Carp;
use Image::Synchronize qw(normalize_options);
use Image::Synchronize::GroupedInfo;
use Image::Synchronize::Logger;
use Image::Synchronize::Timestamp;
use Test::More;
use YAML::Any qw(Dump Load);
# We need to mock the timezone offset of the local system, because it
# varies from one system to the next.
my $TZ = 3600; # default: UTC+1
sub settz {
$TZ = $_[0];
}
sub gettz {
return $TZ;
}
{
no warnings qw(redefine);
sub Image::Synchronize::Timestamp::local_timezone_offset {
gettz();
}
}
sub insert_image_info {
my ($s, $filename, %info) = @_;
my $g = $s->{original_info}->{$filename}
= Image::Synchronize::GroupedInfo->new;
$g->set('CameraID',
($info{make} // 'make') . '|'
. ($info{model} // 'model') . '|'
. ($info{serialnumber} // ''))
->set('EXIF', 'CreateDate',
Image::Synchronize::Timestamp->new($info{createdate}))
->set('EXIF', 'DateTimeOriginal',
Image::Synchronize::Timestamp->new($info{datetimeoriginal}
// $info{createdate}))
->set('File', 'FileModifyDate',
Image::Synchronize::Timestamp->new($info{filemodifydate}
// '2020-08-02 10:45:51+02:00'))
->set('File', 'MIMEType', 'image/jpeg')
->set('EXIF', 'Make', $info{make} // 'make')
->set('EXIF', 'Model', $info{model} // 'model')
->set('EXIF', 'SerialNumber', $info{serialnumber});
my $num = $1 if $filename =~ /(\d+)[^0-9]*$/;
$g->set('camera_id', Image::Synchronize::camera_id($g))
->set('createdate_was_embedded', defined($g->get('CreateDate')))
->set('fallback_camera_id',
Image::Synchronize::fallback_camera_id($filename))
->set('file_type', 'image')
->set('image_number', $num);
$s;
}
sub trf {
my ($text) = @_;
$text =~ s/^(ImsyncVersion \(XMP\) +:)(.*)$/$1 VERSION/m;
return $text;
}
( run in 0.946 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )