my $base=undef;
for my $dir (@dirs)
{
- my $path=Cwd::abs_path($dir);
+# my $path=Cwd::abs_path($dir);
+ my $path=$dir;
do
{
$base=$path;
{ "artists_id" => $artist_id,
"albums_id" => $albums_id,
"paths_id" => $path_id });
+
+ $self->remove_tag_refs($file_id);
if(@tags)
{
for my $tag (@tags)
$self->cmd($sql, map { $fields->{$_}; } sort keys(%$fields));
}
+# remove existing files_x_tags relations before reindexing
+sub remove_tag_refs
+{
+ my ($self, $id)=@_;
+ my $sql="DELETE FROM files_x_tags WHERE files_id=?\n";
+ return($self->cmd($sql, $id));
+}
+
sub files_in
{
my ($self, $dir)=@_;
sub prune_directories
{
- my($self)=@_;
+ my($self,@includepaths)=@_;
my $sql=("SELECT name, id FROM paths\n");
my $pathsref=$self->cmd_rows($sql);
my @ids=();
for my $pathpair (@$pathsref)
{
my($path, $id)=@$pathpair;
+ my $relpath = $self->{base} . "/" . $path;
+ next unless(grep { $relpath =~ /^$_/; } @includepaths);
my $fullpath="$self->{absbase}/$path";
unless(-d $fullpath)
{