From 1c2cee539d46e01b597770b8724598fe74dbb7ba Mon Sep 17 00:00:00 2001 From: Luc Didry Date: Mon, 17 Jul 2017 22:23:38 +0200 Subject: [PATCH] Add instance statistics at /fullstats --- lib/Lufi.pm | 5 +++++ lib/Lufi/Controller/Misc.pm | 26 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 lib/Lufi/Controller/Misc.pm diff --git a/lib/Lufi.pm b/lib/Lufi.pm index dd0e878..ffce232 100755 --- a/lib/Lufi.pm +++ b/lib/Lufi.pm @@ -319,6 +319,11 @@ sub startup { shift->render(template => 'about'); })->name('about'); + # Get instance stats + $r->get('/fullstats') + ->to('Misc#fullstats') + ->name('fullstats'); + # Get a file $r->get('/r/:short')-> to('Files#r')-> diff --git a/lib/Lufi/Controller/Misc.pm b/lib/Lufi/Controller/Misc.pm new file mode 100644 index 0000000..a688559 --- /dev/null +++ b/lib/Lufi/Controller/Misc.pm @@ -0,0 +1,26 @@ +# vim:set sw=4 ts=4 sts=4 ft=perl expandtab: +package Lufi::Controller::Misc; +use Mojo::Base 'Mojolicious::Controller'; +use Mojo::File; +use LufiDB; +use Lufi::File; +use Lufi::Slice; + +sub fullstats { + my $c = shift; + + my $files = LufiDB::Files->count('WHERE created_at IS NOT null AND deleted = 0'); + my $deleted = LufiDB::Files->count('WHERE created_at IS NOT null AND deleted = 1'); + my $empty = LufiDB::Files->count('WHERE created_at IS null'); + + return $c->render( + json => { + files => $files, + deleted => $deleted, + empty => $empty, + timestamp => time, + } + ); +} + +1;