summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2016-12-28 15:56:23 +0100
committerDaniel Friesel <derf@finalrewind.org>2016-12-28 15:56:23 +0100
commita1a881bde53bc5eddcd7be4c52a9ce8053ca9c53 (patch)
tree75d4ac86cbbf62dafe22761962eb1dd245c77dab
parentc2ccc508bdccc10febd1c0cc4b12d73a757aae72 (diff)
code cleanup
-rwxr-xr-xlib/App/Dthumb.pm33
-rw-r--r--lib/App/Dthumb/Data.pm.PL11
-rw-r--r--share/folder-blue.pngbin0 -> 3233 bytes
-rwxr-xr-xt/20-app-dthumb.t6
4 files changed, 13 insertions, 37 deletions
diff --git a/lib/App/Dthumb.pm b/lib/App/Dthumb.pm
index 5e6aabe..b6024a6 100755
--- a/lib/App/Dthumb.pm
+++ b/lib/App/Dthumb.pm
@@ -2,11 +2,11 @@ package App::Dthumb;
use strict;
use warnings;
-use autodie;
use 5.010;
use App::Dthumb::Data;
use Cwd;
+use File::Slurp qw(read_dir write_file);
use Image::Imlib2;
our $VERSION = '0.2';
@@ -28,13 +28,6 @@ sub new {
$conf{dir_data} = "$conf{dir_images}/.dthumb";
$conf{dir_thumbs} = "$conf{dir_images}/.thumbs";
- # helpers to directly pass GetOptions results
- $conf{lightbox} //= (
- (
- $conf{'no-lightbox'}
- or $conf{shadowbox}
- ) ? 0 : 1
- );
$conf{names} //= ( $conf{'no-names'} ? 0 : 1 );
$ref->{config} = \%conf;
@@ -57,28 +50,22 @@ sub read_directories {
my $thumbdir = $self->{config}->{dir_thumbs};
my $imgdir = $self->{config}->{dir_images};
- my $dh;
my ( @files, @old_thumbs );
- opendir( $dh, $imgdir );
-
- for my $file ( readdir($dh) ) {
+ for my $file ( read_dir($imgdir) ) {
if ( -f "${imgdir}/${file}"
and $file =~ qr{ [.] (png | jp e? g) $ }iox )
{
push( @files, $file );
}
}
- closedir($dh);
if ( -d $thumbdir ) {
- opendir( $dh, $thumbdir );
- for my $file ( readdir($dh) ) {
+ for my $file ( read_dir($thumbdir) ) {
if ( $file =~ qr{^ [^.] }ox and not -f "${imgdir}/${file}" ) {
push( @old_thumbs, $file );
}
}
- closedir($dh);
}
@{ $self->{files} } = sort { lc($a) cmp lc($b) } @files;
@@ -94,18 +81,14 @@ sub create_files {
my $datadir = $self->{config}->{dir_data};
my @files = $self->{data}->list_archived;
- for my $dir ( $thumbdir, $datadir, "${datadir}/css",
- "${datadir}/js" )
- {
+ for my $dir ( $thumbdir, $datadir, "${datadir}/css", "${datadir}/js" ) {
if ( not -d $dir ) {
mkdir($dir);
}
}
for my $file (@files) {
- open( my $fh, '>', "${datadir}/${file}" );
- print {$fh} $self->{data}->get($file);
- close($fh);
+ write_file( "${datadir}/${file}", $self->{data}->get($file) );
}
return;
@@ -138,7 +121,7 @@ sub create_thumbnail_html {
$self->{html} .= "<div class=\"image-container\">\n";
$self->{html} .= sprintf(
- "\t<a class=\"fancybox\" href=\"%s\" title=\"%s\" data-fancybox-group=\"gallery\">\n"
+"\t<a class=\"fancybox\" href=\"%s\" title=\"%s\" data-fancybox-group=\"gallery\">\n"
. "\t\t<img src=\"%s/%s\" alt=\"%s\" /></a>\n",
($file) x 2,
$self->{config}->{dir_thumbs},
@@ -195,9 +178,7 @@ sub write_out_html {
$self->{html} .= $self->{data}->get('html_end.dthumb');
- open( my $fh, '>', $self->{config}->{file_index} );
- print {$fh} $self->{html};
- close($fh);
+ write_file( $self->{config}->{file_index}, $self->{html} );
return;
}
diff --git a/lib/App/Dthumb/Data.pm.PL b/lib/App/Dthumb/Data.pm.PL
index 32ba162..ca435bf 100644
--- a/lib/App/Dthumb/Data.pm.PL
+++ b/lib/App/Dthumb/Data.pm.PL
@@ -2,12 +2,13 @@
use strict;
use warnings;
use 5.010;
-use File::Slurp qw(read_dir);
+use Carp qw(carp croak);
+use File::Slurp qw(read_dir read_file);
use MIME::Base64 qw(encode_base64);
my ($out_file) = @ARGV;
-open( my $out_fh, '>', $out_file );
+open( my $out_fh, '>', $out_file ) or croak("Cannot open ${out_file}: $!");
print {$out_fh} <DATA>;
@@ -22,9 +23,7 @@ for my $file (
next;
}
- open( my $fh, '<', $file );
- my $content = do { local $/ = undef; <$fh> };
- close($fh);
+ my $content = read_file($file);
if ( $file =~ qr{ [.] (png | gif) $ }ox ) {
$content = encode_base64($content);
@@ -34,7 +33,7 @@ for my $file (
printf {$out_fh} ( "______[ %s ]______\n%s\n", $file, $content, );
}
-close($out_fh);
+close($out_fh) or carp("Cannot close ${out_file}: $!");
__DATA__
package App::Dthumb::Data;
diff --git a/share/folder-blue.png b/share/folder-blue.png
new file mode 100644
index 0000000..b083196
--- /dev/null
+++ b/share/folder-blue.png
Binary files differ
diff --git a/t/20-app-dthumb.t b/t/20-app-dthumb.t
index 37e72a0..9be60de 100755
--- a/t/20-app-dthumb.t
+++ b/t/20-app-dthumb.t
@@ -4,7 +4,7 @@ use warnings;
use 5.010;
use autodie;
-use Test::More tests => 16;
+use Test::More tests => 14;
use_ok('App::Dthumb');
@@ -20,16 +20,12 @@ is($dthumb->{config}->{dir_thumbs}, './.thumbs',
'Thumbnail directory is dthumbs');
is($dthumb->{config}->{file_index}, 'index.html', 'index is index.html');
-is($dthumb->{config}->{lightbox}, 1, 'Lightbox enabled');
is($dthumb->{config}->{names} , 1, 'Show image names');
is($dthumb->{config}->{quality} , 75, 'Default quality');
is($dthumb->{config}->{recreate}, 0, 'Do not recreate');
is($dthumb->{config}->{size} , 200, 'Default size');
is($dthumb->{config}->{spacing} , 1.1, 'Default spacing');
-$dthumb = App::Dthumb->new('no-lightbox' => 1);
-is($dthumb->{config}->{lightbox}, 0, 'Lightbox disabled');
-
$dthumb = App::Dthumb->new('no-names' => 1);
is($dthumb->{config}->{names}, 0, 'Image names disabled');