Skip to content

Commit

Permalink
ready
Browse files Browse the repository at this point in the history
  • Loading branch information
vti committed Apr 11, 2011
1 parent 672b9bd commit 9d2bfc5
Show file tree
Hide file tree
Showing 16 changed files with 218 additions and 151 deletions.
32 changes: 23 additions & 9 deletions lib/Look2RemoveMe.pm
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ use warnings;
use base 'Lamework';

use Plack::Builder;
use Look2RemoveMe::File;

sub compile_psgi_app {
my $self = shift;
Expand All @@ -22,7 +23,7 @@ sub compile_psgi_app {
root => "htdocs";

enable 'Static' => path =>
qr{\.(?:js|css|jpe?g|gif|png|html?|js|css|swf|ico)$},
qr{\.(?:js|css|jpe?g|gif|png|html?|swf|ico)$},
root => "htdocs";

enable 'SimpleLogger', level => 'debug';
Expand All @@ -37,18 +38,31 @@ sub compile_psgi_app {
};
}

sub setup {
sub startup {
my $self = shift;

my $routes = $self->routes;

$routes->add_route('/', name => 'root');
$routes->add_route('/messages', defaults => {action => 'Message'});
$routes->add_route('/messages/:id', defaults => {action => 'MessageShow'});
$routes->add_route('/images', defaults => {action => 'Image'});
$routes->add_route('/images/:id', defaults => {action => 'ImageShow'});

return $routes;
$routes->add_route(
'/',
name => 'index',
method => 'get'
);
$routes->add_route(
'/',
name => 'index',
defaults => {action => 'Index'},
method => 'post'
);
$routes->add_route(
'/:id',
name => 'view',
defaults => {action => 'View'}
);

Look2RemoveMe::File->set_root($self->home->catfile('htdocs', 'uploads'));

return $self;
}

1;
46 changes: 46 additions & 0 deletions lib/Look2RemoveMe/Action/Index.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package Look2RemoveMe::Action::Index;

use strict;
use warnings;

use base 'Lamework::Action';

use Try::Tiny;
use Lamework::Exception;

use Look2RemoveMe::File;

sub run {
my $self = shift;

$self->set_var(type => 'image');

my $upload = $self->req->upload('image');

return $self->set_var('errors' => {image => 'Required'}) unless $upload;

try {
Lamework::Exception->throw("Doesn't look like an image to me")
unless $upload->content_type =~ m{^image/};

my $max_size_in_megs = 1;
if ($upload->size > $max_size_in_megs * 1024 * 1024) {
Lamework::Exception->throw(
"File size is too big (max $max_size_in_megs Mb)");
}

my $image = Look2RemoveMe::File->create_from_path($upload->path);

$self->set_var(url => $self->url_for('view', id => $image->id));
$self->set_template('upload_success');
}
catch {
my $e = $_;

die $e unless $e->isa('Lamework::Exception');

$self->set_var('errors' => {image => $e->error});
};
}

1;
40 changes: 0 additions & 40 deletions lib/Look2RemoveMe/Action/SubmitText.pm

This file was deleted.

39 changes: 0 additions & 39 deletions lib/Look2RemoveMe/Action/UploadImage.pm

This file was deleted.

34 changes: 6 additions & 28 deletions lib/Look2RemoveMe/Action/View.pm
Original file line number Diff line number Diff line change
Expand Up @@ -3,52 +3,30 @@ package Look2RemoveMe::Action::View;
use strict;
use warnings;

use base 'Look2RemoveMe::Action';
use base 'Lamework::Action';

use Look2RemoveMe::Registry;
use Lamework::Registry;
use Look2RemoveMe::File;
use Look2RemoveMe::Image;

sub run {
my $self = shift;

my $id = $self->captures->{id};

$self->_view_text($id);
}

sub _view_text {
my $self = shift;
my ($id) = @_;

my $text = Look2RemoveMe::Text->new(id => $id);

return $self->render_not_found unless $text->exists;

my $content = $text->slurp;
$text->remove;

$self->set_var(text => $content);
}

sub _view_image {
my $self = shift;
my ($id) = @_;

my $image = Look2RemoveMe::Image->new(id => $id);
my $image = Look2RemoveMe::File->new(id => $id);

return $self->render_not_found unless $image->exists;

my $path = $self->_realpath_to_www($image->realpath);
my $path = $self->_path_to_www($image->path);

$self->set_var(image => {src => $path});
}

sub _realpath_to_www {
sub _path_to_www {
my $self = shift;
my ($path) = @_;

my $home = Look2RemoveMe::Registry->get('home');
my $home = Lamework::Registry->get('home');
$home = File::Spec->catfile($home, 'htdocs');
$path =~ s{^$home}{};

Expand Down
8 changes: 6 additions & 2 deletions lib/Look2RemoveMe/App/FileWithRTL.pm
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ use warnings;

use base 'Plack::App::File';

use Lamework::Registry;
use Look2RemoveMe::File;

use Plack::Util;
use Plack::MIME;
use HTTP::Date;
Expand All @@ -22,8 +24,10 @@ sub serve_path {
open my $fh, "<:raw", $file
or return $self->return_403;

#my $file = Look2RemoveMe::File->new(id => '123');
#$file->decrement_rtl;
my $home = Lamework::Registry->get('home');

my $file_to_remove = Look2RemoveMe::File->new_from_path($home->catfile($file));
$file_to_remove->remove;

my @stat = stat $file;

Expand Down
48 changes: 48 additions & 0 deletions lib/Look2RemoveMe/Counter.pm
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package Look2RemoveMe::Counter;

use strict;
use warnings;

use Lamework::Registry;

sub new {
my $class = shift;

my $self = {};
bless $self, $class;

return $self;
}

sub total {
my $self = shift;

return int $self->_slurp;
}

sub increment {
my $self = shift;

my $total = $self->total;
open my $file, '>', $self->_path or die $!;
print $file $total + 1;

return $self;
}

sub _slurp {
my $self = shift;

open my $file, '<', $self->_path or return '0';
return do {local $/; <$file>};
}

sub _path {
my $self = shift;

my $home = Lamework::Registry->get('home');

return $home->catfile('counter.txt');
}

1;
Loading

0 comments on commit 9d2bfc5

Please sign in to comment.