Commit 36bae6e0 authored by Luc Didry's avatar Luc Didry
Browse files

Add Minion support

This commit is dedicated to Brigitte, the queen of elves, who is supporting me.
Many thanks :-)
parent 2a0f2ef4
......@@ -17,6 +17,7 @@ Revision history for Lutim
- Add stats in JSON format (GET /stats.json)
- Add Cache-control headers for static files
- Put almost all js/css stuff outside templates
- Allow to use Minion to increment counter (#43)
0.7.1 2016-06-21
- Fix dependency bug
......
......@@ -45,6 +45,9 @@ prod: rmassets
prodlog:
multitail log/production.log
minion:
$(CARTON) $(REAL_LUTIM) minion worker
create-pg-test-db:
sudo -u postgres psql -f t/create-pg-testdb.sql
......
......@@ -6,9 +6,12 @@ requires 'Net::Domain::TLD', '>= 1.73'; # Must have the last version to handle (
requires 'Mojo::Pg';
requires 'Mojolicious::Plugin::I18N';
requires 'Mojolicious::Plugin::AssetPack';
requires 'Mojolicious::Plugin::DebugDumperHelper';
requires 'Mojolicious::Plugin::PgURLHelper';
requires "Minion", "== 4.06";
requires 'Minion::Backend::SQLite', "== 0.009";
requires 'CSS::Minifier::XS';
requires 'JavaScript::Minifier::XS';
requires 'Mojolicious::Plugin::DebugDumperHelper';
requires 'ORLite';
requires 'Text::Unidecode';
requires 'DateTime';
......
This diff is collapsed.
......@@ -23,6 +23,7 @@ sub startup {
$self->{wait_for_it} = {};
$self->plugin('DebugDumperHelper');
$self->plugin('PgURLHelper');
my $config = $self->plugin('Config', {
default => {
......@@ -42,6 +43,11 @@ sub startup {
theme => 'default',
dbtype => 'sqlite',
max_files_in_zip => 15,
minion => {
enabled => 0,
dbtype => 'sqlite',
db_path => 'minion.db'
},
}
});
......@@ -72,6 +78,27 @@ sub startup {
# Helpers
$self->plugin('Lutim::Plugin::Helpers');
# Minion
if ($config->{minion}->{enabled}) {
$self->config('minion')->{dbtype} = 'sqlite' unless defined $config->{minion}->{dbtype};
if ($config->{minion}->{dbtype} eq 'sqlite') {
$self->config('minion')->{db_path} = 'minion.db' unless defined $config->{minion}->{db_path};
$self->plugin('Minion' => { SQLite => 'sqlite:'.$config->{minion}->{db_path} });
} elsif ($config->{minion}->{dbtype} eq 'postgresql') {
$self->plugin('Minion' => { Pg => $self->pg_url($config->{minion}->{'pgdb'}) });
}
$self->app->minion->add_task(
accessed => sub {
my $job = shift;
my $short = $job->args->[0];
my $time = $job->args->[1];
my $img = Lutim::DB::Image->new(app => $job->app, short => $short);
$img->accessed($time) if $img->path;
}
);
}
# Hooks
$self->hook(
before_dispatch => sub {
......
......@@ -591,10 +591,11 @@ sub short {
$c->app->log->info('[VIEW] someone viewed '.$image->filename.' (path: '.$image->path.')');
# Update record
my $counter = $image->counter + 1;
$image->counter($counter)
->last_access_at(time)
->write;
if ($c->config('minion')->{enabled}) {
$c->app->minion->enqueue(accessed => [$image->short, time]);
} else {
$image->accessed(time);
}
# Delete image if needed
if ($image->delete_at_first_view) {
......@@ -690,10 +691,13 @@ sub zip {
# Log access
$c->app->log->info('[VIEW] someone viewed '.$image->filename.' (path: '.$image->path.')');
# Update counter and record
$image->counter($image->counter + 1)
->last_access_at(time)
->write;
if ($c->config('minion')->{enabled}) {
$c->app->minion->enqueue(accessed => [$image->short, time]);
} else {
$image->accessed(time);
}
}
} elsif ($image->path && !$image->enabled) {
# Log access try
......
......@@ -129,6 +129,20 @@ sub to_hash {
};
}
=head2 accessed
=over 1
=item B<Usage> : C<$c-E<gt>accessed($time)>
=item B<Arguments> : an unix timestamp
=item B<Purpose> : increments the counter attribute by one, set the last_access_at attribute to $time and update the database
=item B<Returns> : the db accessor object
=back
=head2 count_delete_at_day_endis
=over 1
......
......@@ -14,6 +14,17 @@ sub new {
return $c;
}
sub accessed {
my $c = shift;
my $time = shift;
my $h = $c->app->pg->db->query('UPDATE lutim SET counter = counter + 1, last_access_at = ? WHERE short = ? RETURNING counter, last_access_at', $time, $c->short)->hashes->first;
$c->counter($h->{counter});
$c->last_access_at($h->{last_access_at});
return $c;
}
sub count_delete_at_day_endis {
my $c = shift;
my $day = shift;
......
......@@ -15,6 +15,21 @@ sub new {
return $c;
}
sub accessed {
my $c = shift;
my $time = shift;
$c->record->update(
counter => $c->counter + 1,
last_access_at => $time
);
$c->counter($c->record->counter);
$c->last_access_at($c->record->last_access_at);
return $c;
}
sub count_delete_at_day_endis {
my $c = shift;
my $day = shift;
......
......@@ -8,6 +8,8 @@ use Data::Entropy qw(entropy_source);
sub register {
my ($self, $app) = @_;
$app->plugin('PgURLHelper');
if ($app->config('dbtype') eq 'postgresql') {
use Mojo::Pg;
$app->helper(pg => \&_pg);
......@@ -37,13 +39,7 @@ sub register {
sub _pg {
my $c = shift;
my $addr = 'postgresql://';
$addr .= $c->app->config('pgdb')->{host};
$addr .= ':'.$c->app->config('pgdb')->{port} if defined $c->app->config('pgdb')->{port};
$addr .= '/'.$c->app->config('pgdb')->{database};
state $pg = Mojo::Pg->new($addr);
$pg->password($c->app->config('pgdb')->{pwd});
$pg->username($c->app->config('pgdb')->{user});
state $pg = Mojo::Pg->new($c->app->pg_url($c->app->config('pgdb')));
return $pg;
}
......
......@@ -130,6 +130,31 @@
# #pwd => 'DBPASSWORD'
#},
# use Minion instead of directly increase counters
# need to launch a minion worker service if enabled
# optional, Minion is disabled by default
#minion => {
# enabled => 0,
# # Which Minion backend to use?
# # valid values are sqlite and postgresql (all lowercase)
# # mandatory if Minion is enabled, default is sqlite
# dbtype => 'sqlite',
# # SQLite ONLY - only used if if you choose sqlite as Minion backend, define the path to the minion database
# # you can define it relative to lutim directory or set an absolute path
# # remember that it has to be in a directory writable by Lutim user
# # optional, default is minion.db
# db_path => 'minion.db',
# # PostgreSQL ONLY - only used if you choose postgresql as Minion backend
# # these are the credentials to access the Minion's PostgreSQL database
# # mandatory if you choosed postgresql as Minion backend, no default
# pgdb => {
# database => 'lutim_minion',
# host => 'localhost',
# #user => 'DBUSER',
# #pwd => 'DBPASSWORD'
# }
#},
# define the height of the thumbnails generated at users' will
# this is not the height of the thumbnails send after upload,
# we're talking about thumbnails generated when someone asked for
......
CREATE USER lutim WITH PASSWORD 'lutim';
CREATE DATABASE lutimtest OWNER lutim;
CREATE DATABASE lutim_miniontest OWNER lutim;
......@@ -43,16 +43,14 @@ $t->get_ok('/')
# Instance settings informations
$t->get_ok('/infos')
->status_is(200)
->json_has('image_magick')
->json_is(
{
always_encrypt => false,
broadcast_message => 'test broadcast message',
contact => 'John Doe, admin[at]example.com',
default_delay => 30,
image_magick => true,
max_delay => 200,
max_file_size => 1048576
}
'/always_encrypt' => false,
'/broadcast_message' => 'test broadcast message',
'/contact' => 'John Doe, admin[at]example.com',
'/default_delay' => 30,
'/max_delay' => 200,
'/max_file_size' => 1048576
);
# Post image
......
......@@ -35,11 +35,11 @@ msgstr "%1 Bilder wurden bisher über diese Instanz versendet."
msgid "-or-"
msgstr "-oder-"
#: lib/Lutim.pm:165 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
msgid "1 year"
msgstr "1 Jahr"
#: lib/Lutim.pm:164 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
msgid "24 hours"
msgstr "24 Stunden"
......@@ -191,7 +191,7 @@ msgstr "Bild-URL"
msgid "Image delay"
msgstr ""
#: lib/Lutim/Controller.pm:706
#: lib/Lutim/Controller.pm:710
msgid "Image not found."
msgstr "Bild nicht gefunden"
......@@ -307,7 +307,7 @@ msgid "Something bad happened"
msgstr "Es ist ein Fehler aufgetreten"
#. ($c->config('contact')
#: lib/Lutim/Controller.pm:713
#: lib/Lutim/Controller.pm:717
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
msgstr "Es ist ein Fehler aufgetreten. Versuche es erneut oder kontaktiere den Administrator (%1)."
......@@ -399,7 +399,7 @@ msgstr "Twittere es!"
msgid "Unable to find the image %1."
msgstr "Konnte das Bild %1 nicht finden."
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:615 lib/Lutim/Controller.pm:658 lib/Lutim/Controller.pm:670 lib/Lutim/Controller.pm:681 lib/Lutim/Controller.pm:703 lib/Lutim/Plugin/Helpers.pm:61
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
msgid "Unable to find the image: it has been deleted."
msgstr "Dieses Bild wurde gelöscht."
......@@ -424,7 +424,7 @@ msgid "Uploaded files by days"
msgstr "Hochgeladene Bilder pro Tag"
#. ($c->app->config('contact')
#: lib/Lutim/Plugin/Helpers.pm:156
#: lib/Lutim/Plugin/Helpers.pm:152
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
msgstr "Hochladen ist momentan deaktiviert. Versuche es später erneut oder kontaktiere den Administrator (%1)."
......@@ -468,7 +468,7 @@ msgstr "und auf"
msgid "core developer"
msgstr "Haupt-Entwickler"
#: lib/Lutim.pm:163 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
msgid "no time limit"
msgstr "keine Zeit-Begrenzung"
......
......@@ -33,11 +33,11 @@ msgstr "%1 sent images on this instance from beginning."
msgid "-or-"
msgstr "-or-"
#: lib/Lutim.pm:165 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
msgid "1 year"
msgstr "1 year"
#: lib/Lutim.pm:164 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
msgid "24 hours"
msgstr "24 hours"
......@@ -189,7 +189,7 @@ msgstr "Image URL"
msgid "Image delay"
msgstr ""
#: lib/Lutim/Controller.pm:706
#: lib/Lutim/Controller.pm:710
msgid "Image not found."
msgstr ""
......@@ -303,7 +303,7 @@ msgid "Something bad happened"
msgstr "Something bad happened"
#. ($c->config('contact')
#: lib/Lutim/Controller.pm:713
#: lib/Lutim/Controller.pm:717
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
msgstr ""
......@@ -395,7 +395,7 @@ msgstr "Tweet it!"
msgid "Unable to find the image %1."
msgstr "Unable to find the image %1."
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:615 lib/Lutim/Controller.pm:658 lib/Lutim/Controller.pm:670 lib/Lutim/Controller.pm:681 lib/Lutim/Controller.pm:703 lib/Lutim/Plugin/Helpers.pm:61
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
msgid "Unable to find the image: it has been deleted."
msgstr "Unable to find the image: it has been deleted."
......@@ -420,7 +420,7 @@ msgid "Uploaded files by days"
msgstr "Uploaded files by days"
#. ($c->app->config('contact')
#: lib/Lutim/Plugin/Helpers.pm:156
#: lib/Lutim/Plugin/Helpers.pm:152
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
msgstr "Uploading is currently disabled, please try later or contact the administrator (%1)."
......@@ -468,7 +468,7 @@ msgstr "and on"
msgid "core developer"
msgstr "core developer"
#: lib/Lutim.pm:163 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
msgid "no time limit"
msgstr "no time limit"
......
......@@ -35,11 +35,11 @@ msgstr "%1 imágenes enviadas a esta instancia desde el inicio."
msgid "-or-"
msgstr "-o-"
#: lib/Lutim.pm:165 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
msgid "1 year"
msgstr "1 año"
#: lib/Lutim.pm:164 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
msgid "24 hours"
msgstr "24 horas"
......@@ -191,7 +191,7 @@ msgstr "URL de la imagen"
msgid "Image delay"
msgstr ""
#: lib/Lutim/Controller.pm:706
#: lib/Lutim/Controller.pm:710
msgid "Image not found."
msgstr "Imagen no encontrada."
......@@ -305,7 +305,7 @@ msgid "Something bad happened"
msgstr "Algo malo ha pasado"
#. ($c->config('contact')
#: lib/Lutim/Controller.pm:713
#: lib/Lutim/Controller.pm:717
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
msgstr "Algo malo ha pasado. Inténtelo de nuevo más tarde o contacte con el administrador (%1)."
......@@ -397,7 +397,7 @@ msgstr "¡Tuitéalo!"
msgid "Unable to find the image %1."
msgstr "No se ha podido encontrar la imagen %1."
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:615 lib/Lutim/Controller.pm:658 lib/Lutim/Controller.pm:670 lib/Lutim/Controller.pm:681 lib/Lutim/Controller.pm:703 lib/Lutim/Plugin/Helpers.pm:61
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
msgid "Unable to find the image: it has been deleted."
msgstr "No se ha podido encontrar la imagen: ha sido borrada."
......@@ -422,7 +422,7 @@ msgid "Uploaded files by days"
msgstr "Archivos enviados por día"
#. ($c->app->config('contact')
#: lib/Lutim/Plugin/Helpers.pm:156
#: lib/Lutim/Plugin/Helpers.pm:152
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
msgstr "La carga está deshabilitada en estos momentos, por favor inténtelo más tarde o contacte con el administrador (%1)."
......@@ -466,7 +466,7 @@ msgstr "y en"
msgid "core developer"
msgstr "desarrollador principal"
#: lib/Lutim.pm:163 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
msgid "no time limit"
msgstr "Sin tiempo límite"
......
......@@ -35,11 +35,11 @@ msgstr "%1 images envoyées sur cette instance depuis le début."
msgid "-or-"
msgstr "-ou-"
#: lib/Lutim.pm:165 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
msgid "1 year"
msgstr "1 an"
#: lib/Lutim.pm:164 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
msgid "24 hours"
msgstr "24 heures"
......@@ -191,7 +191,7 @@ msgstr "URL de l’image"
msgid "Image delay"
msgstr "Durée de rétention de l’image"
#: lib/Lutim/Controller.pm:706
#: lib/Lutim/Controller.pm:710
msgid "Image not found."
msgstr "Image non trouvée."
......@@ -305,7 +305,7 @@ msgid "Something bad happened"
msgstr "Un problème est survenu"
#. ($c->config('contact')
#: lib/Lutim/Controller.pm:713
#: lib/Lutim/Controller.pm:717
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
msgstr "Quelque chose s’est mal passé lors de la création de l’archive. Veuillez réessayer plus tard ou contactez l’administrateur (%1)."
......@@ -399,7 +399,7 @@ msgstr "Tweetez !"
msgid "Unable to find the image %1."
msgstr "Impossible de trouver l’image %1."
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:615 lib/Lutim/Controller.pm:658 lib/Lutim/Controller.pm:670 lib/Lutim/Controller.pm:681 lib/Lutim/Controller.pm:703 lib/Lutim/Plugin/Helpers.pm:61
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
msgid "Unable to find the image: it has been deleted."
msgstr "Impossible de trouver l’image : elle a été supprimée."
......@@ -424,7 +424,7 @@ msgid "Uploaded files by days"
msgstr "Fichiers envoyés, par jour"
#. ($c->app->config('contact')
#: lib/Lutim/Plugin/Helpers.pm:156
#: lib/Lutim/Plugin/Helpers.pm:152
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
msgstr "L’envoi d’images est actuellement désactivé, veuillez réessayer plus tard ou contacter l’administrateur (%1)."
......@@ -468,7 +468,7 @@ msgstr "et sur"
msgid "core developer"
msgstr "développeur principal"
#: lib/Lutim.pm:163 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
msgid "no time limit"
msgstr "Pas de limitation de durée"
......
......@@ -34,11 +34,11 @@ msgstr "%1 imatges mandats sus aquesta instància dempuèi lo començament."
msgid "-or-"
msgstr "-o-"
#: lib/Lutim.pm:165 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
msgid "1 year"
msgstr "1 an"
#: lib/Lutim.pm:164 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
msgid "24 hours"
msgstr "24 oras"
......@@ -190,7 +190,7 @@ msgstr "URL de l'imatge"
msgid "Image delay"
msgstr "Delai de l'imatge"
#: lib/Lutim/Controller.pm:706
#: lib/Lutim/Controller.pm:710
msgid "Image not found."
msgstr "Imatge pas trobat."
......@@ -304,7 +304,7 @@ msgid "Something bad happened"
msgstr "Un problèma es aparegut"
#. ($c->config('contact')
#: lib/Lutim/Controller.pm:713
#: lib/Lutim/Controller.pm:717
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
msgstr "Quicòm a trucat pendent la creacion de l'archiu. Mercés de tornar ensajar pus tard o de contactar l'administrator (%1)."
......@@ -396,7 +396,7 @@ msgstr "Tweetejatz !"
msgid "Unable to find the image %1."
msgstr "Impossible de trobar l'imatge %1."
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:615 lib/Lutim/Controller.pm:658 lib/Lutim/Controller.pm:670 lib/Lutim/Controller.pm:681 lib/Lutim/Controller.pm:703 lib/Lutim/Plugin/Helpers.pm:61
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
msgid "Unable to find the image: it has been deleted."
msgstr "Impossible de trobar l'imatge : es estat suprimit."
......@@ -421,7 +421,7 @@ msgid "Uploaded files by days"
msgstr "Fichièrs mandats per jorn"
#. ($c->app->config('contact')
#: lib/Lutim/Plugin/Helpers.pm:156
#: lib/Lutim/Plugin/Helpers.pm:152
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
msgstr "La mesa en linha es desactivada pel moment, mercés de tornar ensajar mai tard o de contactar l'administrator (%1)."
......@@ -465,7 +465,7 @@ msgstr "e sus"
msgid "core developer"
msgstr "desvolopaire màger"
#: lib/Lutim.pm:163 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
msgid "no time limit"
msgstr "Pas cap de limitacion de durada"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment