]> mj.ucw.cz Git - gallery.git/commitdiff
gal-mj-digikam imports GPS coordinates
authorMartin Mares <mj@ucw.cz>
Sun, 8 Feb 2015 19:41:57 +0000 (20:41 +0100)
committerMartin Mares <mj@ucw.cz>
Sun, 8 Feb 2015 20:14:18 +0000 (21:14 +0100)
gal/bin/gal-mj-digikam

index 435cf256b9c70861c1811ad419db800aa16d2e28..8576f8963712bda79ed81cf73e9c948e4fec98ec 100755 (executable)
@@ -5,6 +5,13 @@ use warnings;
 
 use Cwd;
 use DBI;
+use Getopt::Long;
+
+if (@ARGV && $ARGV[0] eq '--help') {
+       die <<AMEN ;
+Usage: gal mj-digikam [<album>]
+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( <<AMEN, { Slice => {} },
+       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;