mirror of
https://framagit.org/fiat-tux/hat-softwares/lutim.git
synced 2026-05-07 05:44:54 +02:00
179def2d3e
This commit is dedicated to Schoumi, who is supporting me on Tipeee. Many thanks :-)
127 lines
2.7 KiB
Perl
127 lines
2.7 KiB
Perl
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
|
|
package Lutim::DB::Image::SQLite;
|
|
use Mojo::Base 'Lutim::DB::Image';
|
|
use Lutim::DB::SQLite;
|
|
use Mojo::Collection 'c';
|
|
|
|
has 'record';
|
|
|
|
sub new {
|
|
my $c = shift;
|
|
$c = $c->SUPER::new(@_);
|
|
$c = $c->_slurp if ($c->short);
|
|
return $c;
|
|
}
|
|
|
|
sub clean_ips_until {
|
|
my $c = shift;
|
|
my $time = shift;
|
|
|
|
Lutim::DB::SQLite->do(
|
|
'UPDATE lutim SET created_by = "" WHERE path IS NOT NULL AND created_at < ?',
|
|
{},
|
|
$time
|
|
);
|
|
|
|
return $c;
|
|
}
|
|
|
|
sub get_no_longer_viewed_files {
|
|
my $c = shift;
|
|
my $time = shift;
|
|
|
|
my @images;
|
|
|
|
my @records = c(LutimModel::Lutim->select('WHERE enabled = 1 AND last_access_at < ?', $time));
|
|
|
|
for my $e (@records) {
|
|
my $i = Lutim::DB::Image->new(app => $c->app);
|
|
$i->record($e);
|
|
$i->_slurp;
|
|
|
|
push @images, $i;
|
|
}
|
|
|
|
return c(@images);
|
|
}
|
|
|
|
sub get_images_to_clean {
|
|
my $c = shift;
|
|
|
|
my @images;
|
|
|
|
my @records = c(LutimModel::Lutim->select('WHERE enabled = 1 AND (delete_at_day * 86400) < (? - created_at) AND delete_at_day != 0', time()));
|
|
|
|
for my $e (@records) {
|
|
my $i = Lutim::DB::Image->new(app => $c->app);
|
|
$i->record($e);
|
|
$i->_slurp;
|
|
|
|
push @images, $i;
|
|
}
|
|
|
|
return c(@images);
|
|
}
|
|
|
|
sub get_50_oldest {
|
|
my $c = shift;
|
|
|
|
my @images;
|
|
|
|
my @records = c(Lutim::DB::SQLite::Lutim->select('WHERE path IS NOT NULL AND enabled = 1 ORDER BY created_at ASC LIMIT 50'));
|
|
|
|
for my $e (@records) {
|
|
my $i = Lutim::DB::Image->new(app => $c->app);
|
|
$i->record($e);
|
|
$i->_slurp;
|
|
|
|
push @images, $i;
|
|
}
|
|
|
|
return c(@images);
|
|
}
|
|
|
|
sub disable {
|
|
my $c = shift;
|
|
|
|
$c->record->update(enabled => 0);
|
|
$c->enabled(0);
|
|
|
|
return $c;
|
|
}
|
|
|
|
sub _slurp {
|
|
my $c = shift;
|
|
|
|
my @urls;
|
|
if ($c->record) {
|
|
@urls = ($c->record);
|
|
} elsif ($c->short) {
|
|
@urls = Lutim::DB::SQLite::Lutim->select('WHERE short = ?', $c->short);
|
|
}
|
|
|
|
if (scalar @urls) {
|
|
$c->short($urls[0]->short);
|
|
$c->path($urls[0]->path);
|
|
$c->footprint($urls[0]->footprint);
|
|
$c->enabled($urls[0]->enabled);
|
|
$c->mediatype($urls[0]->mediatype);
|
|
$c->filename($urls[0]->filename);
|
|
$c->counter($urls[0]->counter);
|
|
$c->delete_at_first_view($urls[0]->delete_at_first_view);
|
|
$c->delete_at_day($urls[0]->delete_at_day);
|
|
$c->created_at($urls[0]->created_at);
|
|
$c->created_by($urls[0]->created_by);
|
|
$c->last_access_at($urls[0]->last_access_at);
|
|
$c->mod_token($urls[0]->mod_token);
|
|
$c->width($urls[0]->width);
|
|
$c->height($urls[0]->height);
|
|
|
|
$c->record($urls[0]) unless $c->record;
|
|
}
|
|
|
|
return $c;
|
|
}
|
|
|
|
1;
|