use strict;
use warnings;
-use lib '/home/mj/web/gal2';
-use UCW::Gallery qw(%CF);
+use FindBin;
+use lib $FindBin::Bin;
+use UCW::Gallery;
use Image::Magick;
use IO::Handle;
STDOUT->autoflush(1);
-UCW::Gallery::LoadConfig;
+my $gal = UCW::Gallery->load_config;
-my $photo_dir = $CF{'PhotoDir'};
+print "Reading gallery.list\n";
+my $orig_list = $gal->read_list('gallery.list') or die "Cannot read gallery.list: $!\n";
+
+my $photo_dir = $gal->get('PhotoDir');
my $photo_meta = File::Spec->catfile($photo_dir, 'gallery.meta');
print "Reading meta-data from $photo_meta\n";
-f $photo_meta or die "Cannot load $photo_meta\n";
-my $meta = UCW::Gallery::ReadMeta($photo_meta);
+my $meta = $gal->read_meta($photo_meta);
-my $cache_dir = $CF{'CacheDir'};
+my $cache_dir = $gal->get('CacheDir');
if (-d $cache_dir) {
print "Deleting old cache directory: $cache_dir\n";
File::Path::remove_tree($cache_dir);
print "Creating cache directory: $cache_dir\n";
File::Path::mkpath($cache_dir) or die "Unable to create $cache_dir: $!\n";
-for my $t (@{$CF{'ThumbSizes'}}) {
- my ($tw, $th) = @$t;
- my $thumb_fmt = $tw . 'x' . $th;
+# Construct sequence and store photo titles
+$meta->{sequence} = [];
+for my $f (@$orig_list) {
+ push @{$meta->{sequence}}, $f->{id};
+ my $m = $meta->{photo}->{$f->{id}} or die;
+ $m->{title} = $f->{title};
+}
+
+for my $thumb_fmt (keys %{$gal->get('ThumbFormats')}) {
+ my ($tw, $th) = ($thumb_fmt =~ m{^(\d+)x(\d+)$}) or die "Cannot parse thumbnail format $thumb_fmt\n";
print "Generating $thumb_fmt thumbnails\n";
my $thumb_meta = {};
$meta->{thumb}->{$thumb_fmt} = $thumb_meta;
my $cache_meta = File::Spec->catfile($cache_dir, 'cache.meta');
print "Writing meta-data to $cache_meta\n";
-UCW::Gallery::WriteMeta($cache_meta, $meta);
+$gal->write_meta($cache_meta, $meta);