#!/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";
}