package MexWWW; use Dancer ':syntax'; use File::Slurp qw/read_file write_file/; use File::Copy; use Cwd; use Encode; use Encode::Guess; use YAML::Syck; use Template; use Data::Dumper; $YAML::Syck::ImplicitUnicode = 1; use utf8; use strict; use warnings; $ENV{PATH} .= ':/usr/local/bin'; our $VERSION = '0.1'; my $TMPDIR = '/tmp/MexWWW'; my $USRDIR = shift; $USRDIR = '/home/natura/mex/public/users' unless $USRDIR; my $flash; opendir (my $fh, $USRDIR); my @users = readdir $fh; close $fh; @users = grep { $_ !~ m/^\.{1,2}/} @users; my $data = {}; foreach my $u (@users) { opendir (my $fh, "$USRDIR/$u"); my @files = readdir $fh; @files = grep { $_ !~ m/^\.{1,2}/} @files; @files = grep { $_ !~ m/\.(tex|pdf|meta)$/i} @files; close $fh; foreach (@files) { next unless -e "$USRDIR/$u/$_.META"; my $yaml = read_file( "$USRDIR/$u/$_.META", { binmode => ':utf8' }); $data->{$u}->{$_} = Load($yaml); $data->{$u}->{$_}->{'source'} = read_file( "$USRDIR/$u/$_", { binmode => ':utf8' }); } } my $vars = { pediafiles=>$data }; my $config = { INCLUDE_PATH => ['/home/natura/mex/views','views'] }; my $template = Template->new($config); my $output; $template->process('__gen_problem_pedia.tt', $vars, \$output); print $output;