From 4dd86c4ccce2c095ec029b0086bf66767718ca39 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 8 Feb 2015 20:41:57 +0100 Subject: [PATCH] gal-mj-digikam imports GPS coordinates --- gal/bin/gal-mj-digikam | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/gal/bin/gal-mj-digikam b/gal/bin/gal-mj-digikam index 435cf25..8576f89 100755 --- a/gal/bin/gal-mj-digikam +++ b/gal/bin/gal-mj-digikam @@ -5,6 +5,13 @@ use warnings; use Cwd; use DBI; +use Getopt::Long; + +if (@ARGV && $ARGV[0] eq '--help') { + die <] +AMEN +} my $photos_root = $ENV{HOME} . '/photos'; @@ -38,11 +45,27 @@ my ($tag_id) = $dbh->selectrow_array('SELECT id FROM Tags WHERE pid=0 AND name=" $tag_id // die "Cannot find web tag\n"; print "## Tag ID: $tag_id\n"; +my $res = $dbh->selectall_arrayref( < {} }, + SELECT + i.name AS name, + p.latitudeNumber AS lat, + p.longitudeNumber AS lon, + p.altitude AS alt + FROM Images i + JOIN ImageTags t ON (i.id = t.imageid) + LEFT JOIN ImagePositions p ON (i.id = p.imageid) + WHERE i.album=? AND t.tagid=? + ORDER BY i.modificationDate +AMEN + $album_id, + $tag_id, + ); + open OUT, '|-', $ENV{GALLERY_ROOT} . '/bin/gal-scan' or die "Cannot feed gal scan\n"; -for my $r (@{$dbh->selectall_arrayref( - 'SELECT i.name AS name FROM Images i JOIN ImageTags t ON (i.id = t.imageid) WHERE i.album=? AND t.tagid=? ORDER BY i.modificationDate', - { Slice => {} }, - $album_id, $tag_id)}) { +for my $r (@$res) { print OUT "$photos_root/$album/" . $r->{name}, "\n"; + for my $k (qw(lat lon alt)) { + print OUT "\t$k=", $r->{$k}, "\n" if defined $r->{$k}; + } } close OUT; -- 2.39.2