After struggling with iPhoto in AppleScript for a while (and all
of a sudden realizing that a photo's date property is a string,
not a date object), I had to come back to Perl and DateTime. I
need to shift the times on thousands of images by a certain offset.
Amazingly, Batch Change can't add an offset to every image timestamp
(do the iPhoto developers ever even use digital cameras?).
I think I'm missing something about setting properties though.
I can read things fine, but I get an error when I try to set
a property: "'Mac::AEObjDesc=HASH(0xb03f00)' parameter not available".
Where's my error?
#!/usr/bin/perl
use strict;
use warnings;
use Mac::Glue qw(:all);
my $iPhoto = Mac::Glue->new( "iPhoto" );
my $album = $iPhoto->prop( "current_album" );
my $name = $album->prop( "name" )->get;
my $photos = $album->prop( "photos" );
my $count = $photos->count;
print( qq|Found $count photos in "$name"\n| );
my $photo = $album->obj( photo => 1 );
my $title = $photo->prop( "title" )->get;
print( qq|title is "$title"\n| );
my $date = $photo->prop( "date" )->get;
print( qq|date is "$date"\n| );
$photo->set( date => to => "2004-06-13 12:34:56" );
# $photo->prop( 'date' )->set( ... ) ?
__END__
Found 5 photos in "Album"
title is "7/24/01 14:21"
date is "2001:07:24 14:21:57"
'Mac::AEObjDesc=HASH(0xb03f00)' parameter not available at
/usr/local/lib/perl5/site_perl/5.8.4/Mac/Glue.pm line 1579
--
brian d foy, [EMAIL PROTECTED]