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 )