55 lines
1.6 KiB
Perl
55 lines
1.6 KiB
Perl
|
|
#!/usr/bin/perl
|
||
|
|
#
|
||
|
|
# mood-maker.pl -- Given a new moodset, outputs what should be placed into mood.dat
|
||
|
|
#
|
||
|
|
# Copyright (c) 2016 by Dreamwidth Studios, LLC.
|
||
|
|
#
|
||
|
|
# This program is free software; you may redistribute it and/or modify it under
|
||
|
|
# the same terms as Perl itself. For a copy of the license, please reference
|
||
|
|
# 'perldoc perlartistic' or 'perldoc perlgpl'.
|
||
|
|
|
||
|
|
use strict;
|
||
|
|
use Getopt::Long;
|
||
|
|
|
||
|
|
# parse input options
|
||
|
|
my ( $dir, $name, $description );
|
||
|
|
exit 1 unless GetOptions(
|
||
|
|
'dir=s' => \$dir,
|
||
|
|
'name=s' => \$name,
|
||
|
|
'desc=s' => \$description,
|
||
|
|
);
|
||
|
|
|
||
|
|
if ( !( $dir =~ m#^[\w-]+$# ) || ( $name =~ /:/ ) ) {
|
||
|
|
die "Usage: mood-maker.pl [opts]\n\n"
|
||
|
|
. "--dir The directory within htdocs/img/mood/ the images are stored in\n"
|
||
|
|
. " (that is, if images are in htdocs/img/mood/x/, should be 'x')\n"
|
||
|
|
. "--name The name of the theme (no colons allowed)\n"
|
||
|
|
. "--desc A description for the theme\n\n";
|
||
|
|
}
|
||
|
|
|
||
|
|
# now load in the beast
|
||
|
|
BEGIN {
|
||
|
|
require "$ENV{'LJHOME'}/cgi-bin/ljlib.pl";
|
||
|
|
}
|
||
|
|
|
||
|
|
use File::Basename;
|
||
|
|
use Image::Size;
|
||
|
|
use DW::Mood;
|
||
|
|
|
||
|
|
my %moods; # { name => id }
|
||
|
|
|
||
|
|
foreach ( values %{ DW::Mood->get_moods() } ) {
|
||
|
|
$moods{ $_->{name} } = $_->{id};
|
||
|
|
}
|
||
|
|
|
||
|
|
print "MOODTHEME $name : $description\n";
|
||
|
|
foreach my $path ( glob( $LJ::HOME . '/htdocs/img/mood/' . $dir . "/*" ) ) {
|
||
|
|
my $url = $path;
|
||
|
|
$url =~ s#\Q$LJ::HOME\E/htdocs##;
|
||
|
|
my ($mood) = fileparse( $path, qr/\.[^.]*/ );
|
||
|
|
die "Mood $mood does not exist!" unless exists $moods{$mood};
|
||
|
|
my ( $w, $h ) = Image::Size::imgsize($path);
|
||
|
|
die "Could not get image dimensions of $path" unless $w && $h;
|
||
|
|
print $moods{$mood}, " ", $url, " ", $w, " ", $h, "\n";
|
||
|
|
}
|