59 lines
1.2 KiB
Perl
Executable File
59 lines
1.2 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use Time::Local;
|
|
use DBI;
|
|
use strict;
|
|
|
|
if ($#ARGV) {
|
|
print "Usage ./newfilescan.pl filedb\n";
|
|
exit(0);
|
|
}
|
|
|
|
my $database = $ARGV[0];
|
|
|
|
my $driver = "SQLite";
|
|
my $dsn = "DBI:$driver:dbname=$database";
|
|
my $userid = "";
|
|
my $password = "";
|
|
my $dbh = DBI->connect($dsn, $userid, $password, { RaiseError => 1 })
|
|
or die $DBI::errstr;
|
|
|
|
my $timestamp = timelocal(0, 0, 0, (localtime)[3,4,5]);
|
|
my $sth = $dbh->prepare('SELECT filename, description, size FROM files WHERE uploaddate > $1');
|
|
my $rv = $sth->execute($timestamp) or die $DBI::errstr;
|
|
|
|
my $result;
|
|
|
|
while ($result = $sth->fetchrow_hashref()){
|
|
my $fname = $result->{filename};
|
|
my $desc = $result->{description};
|
|
my $size = $result->{size};
|
|
|
|
my @lines = split(/\n/, $desc);
|
|
my $sizech;
|
|
|
|
if ($size > 1024) {
|
|
$size = $size / 1024;
|
|
$sizech = 'k';
|
|
}
|
|
|
|
if ($size > 1024) {
|
|
$size = $size / 1024;
|
|
$sizech = 'M';
|
|
}
|
|
|
|
if ($size > 1024) {
|
|
$size = $size / 1024;
|
|
$sizech = 'G';
|
|
}
|
|
my @fnameparts = split(/\//, $fname);
|
|
|
|
printf "%-25.25s %6d%s %-45.45s\n", $fnameparts[$#fnameparts], $size, $sizech, $lines[0];
|
|
my $i;
|
|
for ($i = 1; $i <= $#lines; $i++) {
|
|
printf " %-45.45s\n", $lines[$i];
|
|
}
|
|
|
|
printf "\n";
|
|
}
|