+++ /dev/null
-#!/usr/bin/perl
-# Check that thumbnail aspect ratios match pre-migration data
-
-use common::sense;
-
-use UCW::Gallery;
-
-my $gal = UCW::Gallery->load_config;
-my $meta = $gal->read_meta($gal->cache_meta_name);
-
-open T, "gallery.thumb" or die "Cannot read gallery.thumb\n";
-my @thumbs = ();
-while (<T>) {
- chomp;
- my ($name, $tw, $th) = split /\s+/;
- push @thumbs, [ $tw, $th ];
-}
-close T;
-
-for my $id (@{$meta->{sequence}}) {
- my ($tw, $th) = @{shift @thumbs} or die;
- my $ta = $tw / $th;
- my $m = $meta->{photo}->{$id} or die;
- my $pw = $m->{w};
- my $ph = $m->{h};
- my $pa = $pw / $ph;
- if (abs($ta - $pa) > 0.05) {
- if (abs($ta - 1/$pa) > 0.05) {
- print STDERR "$id: Mismatched aspect ratio: orig $ta (${tw}x${th}) new $pa (${pw}x${ph})\n";
- } else {
- print STDERR "$id: Mismatched rotation\n";
- }
- }
-}
+++ /dev/null
-#!/usr/bin/perl
-
-use common::sense;
-
-use UCW::Gallery;
-use File::Spec;
-use Image::Magick;
-
-my $photos_root = $ENV{HOME} . '/photos';
-
-my $album = $ARGV[0] // die "Usage: gal mj-upgrade <album>\n";
-print "### $album ###\n";
-
-### Scan photos.map ###
-
-my $year = $album;
-$year =~ s{/.*}{};
-if ($album eq '2009/Fireworks') { $year = 2008; }
-print "Loading map for $year\n";
-open M, "$photos_root/photos.map" or die "No map file found\n";
-my %map = ();
-while (<M>) {
- chomp;
- m{^$year} or next;
- my ($path, $hash) = split /\t/;
- my $name = $path;
- $name =~ s{.*/}{};
- if (defined $map{$name}) {
- my $prev = $map{$name};
- if ($prev->{hash} ne $hash) {
- print STDERR "Collision for $name: ", $prev->{path}, " vs. ", $path, "\n";
- } else {
- # print STDERR "Harmless collision for $name: ", $prev->{path}, " vs. ", $path, "\n";
- }
- } else {
- $map{$name} = { path => $path, hash => $hash };
- }
-}
-close M;
-
-### Scan static list (if any) ###
-
-my @src = ();
-if (open S, "../static/photos/$album/x") {
- print "Found static list\n";
- while (<S>) {
- chomp;
- my @fields = split /\t/;
- if (@fields == 4) {
- push @src, { name => $fields[0], rotate => $fields[2], xform => $fields[3] };
- } elsif (@fields == 2) {
- push @src, { name => $fields[0], rotate => $fields[1], xform => '.' };
- } else {
- die "Error parsing gallery list: $_\n";
- }
- }
- close S;
-}
-
-### Parse index.cgi and produce gallery.new ###
-
-open I, "$album/index.cgi" or die "Cannot find $album/index.cgi\n";
-open W, ">$album/gallery.new" or die "Cannot create $album/gallery.new\n";
-open T, ">$album/gallery.thumb" or die "Cannot create $album/gallery.thumb\n";
-my %opt = ();
-my %found_dirs = ();
-my @items = ();
-while (<I>) {
- chomp;
- if (/^\s+"(\w+)" => "(.*)",?$/) {
- $opt{$1} = $2;
- print "Option: $1 = $2\n";
- } elsif (/^img\("([^"]+)(\.jpe?g)", "([^"]*)"\);\s*# (\S+)/) {
- my $nr = $1;
- my $ext = $2;
- my $title = $3;
- my $file = $4;
- $file =~ s{^.*/}{}g;
-
- my $map = $map{$file};
- if (!$map) {
- print STDERR "$album: No match for $file\n";
- next;
- }
- my $path = $map->{path};
- my ($vv, $dd, $ff) = File::Spec->splitpath($path);
- $found_dirs{$dd} = 1;
-
- print "Image: $nr $path [$title]\n";
- my $src;
- if (@src) {
- if ($nr =~ m{^\d+$} && $nr <= @src) {
- $src = $src[$nr-1];
- } else {
- print STDERR "$album: Crooked refs ($nr)\n";
- }
- }
-
- print W join("\t",
- "$photos_root/$path",
- $map->{hash},
- ($src ? $src->{rotate} : '-'),
- ($src ? $src->{xform} : '.'),
- ($title ne "" ? $title : '-'),
- ), "\n";
-
-
- my $thumb = "../static/photos/$album/$nr-thumb.jpg";
- if (!-f $thumb) {
- print STDERR "$album: Cannot find thumbnail for photo $nr ($thumb)\n";
- print T "1 1\n";
- } else {
- my $im = new Image::Magick;
- my ($thumb_w, $thumb_h, $thumb_size, $thumb_format) = $im->PingImage($thumb) or die "Error reading $thumb\n";
- print T "$thumb $thumb_w $thumb_h\n";
- }
- } elsif (/^($|#|require|SetOptions|\)|Start|Finish)/) {
- # Nothing important
- } else {
- print STDERR "$album/index.cgi: Parse error at line $.: $_\n";
- }
-}
-close T;
-close W;
-close I;
-
-if (scalar keys %found_dirs != 1) {
- print STDERR "$album: Photos in multiple directories\n";
-}
-
-### Create gallery.cf ###
-
-open CF, ">$album/gallery.cf" or die "Cannot create $album/gallery.cf";
-print CF <<'AMEN' ;
-use common::sense;
-
-my $gal = require '../../default.cf';
-$gal->set(
-AMEN
-
-for my $cf (reverse sort keys %opt) {
- print CF "\t$cf => \"", $opt{$cf}, "\",\n";
-}
-
-print CF <<'AMEN' ;
-);
-
-return $gal;
-AMEN
-
-close CF;