From 87fbf95a66bc4fd0134966a269fbc3ea639b8e34 Mon Sep 17 00:00:00 2001 From: Ian Beckwith Date: Wed, 6 Oct 2010 17:04:36 +0100 Subject: [PATCH] sort_elements: ignore everything except tags and booleans --- lib/ID3FS/DB.pm | 37 +++++++++++++++++++------------------ lib/ID3FS/Path.pm | 8 ++++---- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/lib/ID3FS/DB.pm b/lib/ID3FS/DB.pm index e986f36..3c4f468 100644 --- a/lib/ID3FS/DB.pm +++ b/lib/ID3FS/DB.pm @@ -201,8 +201,8 @@ sub tags my @orclauses=(); my @andclauses=(); use Data::Dumper; - print "TAGS: ", Dumper \@tags; - print "VALS: ", Dumper \@tags_vals; +# print "TAGS: ", Dumper \@tags; +# print "VALS: ", Dumper \@tags_vals; push(@andclauses, "( t2.parents_id=" . (defined($parent) ? $parent : "''") . " )"); if(@tags) @@ -225,7 +225,7 @@ sub tags $sql .= join("\n\tAND ", @andclauses) . "\n"; } $sql .= "GROUP BY t2.name;"; -# print "SQL: $sql\n"; + print "SQL: $sql\n"; my $result=$self->cmd_rows($sql); my @tagnames=map { $_->[0]; } @$result; print "SUBNAMES: ", join(', ', @tagnames), "\n"; @@ -259,7 +259,7 @@ sub artists "INNER JOIN files ON subselect.files_id=files.id\n" . "INNER JOIN artists ON files.artists_id=artists.id\n" . "GROUP BY artists.name;"); -# print "SQL: $sql\n"; + print "SQL: $sql\n"; my $result=$self->cmd_rows($sql); my @tagnames=map { $_->[0]; } @$result; print "ARTISTS: ", join(', ', @tagnames), "\n"; @@ -282,6 +282,7 @@ sub albums "INNER JOIN files ON subselect.files_id=files.id\n" . "INNER JOIN albums ON files.albums_id=albums.id\n" . "GROUP BY albums.name;"); + print "SQL(ALBUMS): \n$sql\n"; my $result=$self->cmd_rows($sql); my @names=map { $_->[0]; } @$result; print "ALBUMS: ", join(', ', @names), "\n"; @@ -299,7 +300,7 @@ sub artist_albums "INNER JOIN artists ON artists.id=files.artists_id\n\t" . "WHERE artists.id=? and albums.name <> ''\n\t" . "GROUP BY albums.name\n"); -# print "ARTIST_ALBUMS SQL: $sql\n"; + print "ARTIST_ALBUMS SQL: $sql\n"; my $result=$self->cmd_rows($sql, $artist_id); my @albums=map { $_->[0]; } @$result; print "ALBUMS: ", join(', ', @albums), "\n"; @@ -317,7 +318,7 @@ sub artist_tracks "INNER JOIN albums ON albums.id=files.albums_id\n\t" . "WHERE artists.id=? AND albums.name=''\n\t" . "GROUP BY files.name\n"); -# print "ARTIST_TRACKS SQL: $sql\n"; + print "ARTIST_TRACKS SQL: $sql\n"; my $result=$self->cmd_rows($sql, $artist_id); my @names=map { $_->[0]; } @$result; print "ARTISTTRACKS: ", join(', ', @names), "\n"; @@ -332,7 +333,7 @@ sub album_tracks "INNER JOIN artists ON artists.id=files.artists_id\n\t" . "WHERE artists.id=? AND albums.id=?\n\t" . "GROUP BY files.name\n"); -# print "ALBUM_TRACKS SQL($artist_id, $album_id): $sql\n"; + print "ALBUM_TRACKS SQL($artist_id, $album_id): $sql\n"; my $result=$self->cmd_rows($sql, $artist_id, $album_id); my @names=map { $_->[0]; } @$result; print "TRACKS: ", join(', ', @names), "\n"; @@ -365,7 +366,7 @@ sub tracks "\t) AS subselect\n" . "INNER JOIN files ON files.id=subselect.files_id\n" . "GROUP BY files.name;"); -# print "SQL: $sql\n"; + print "SQL: $sql\n"; my $result=$self->cmd_rows($sql); my @names=map { $_->[0]; } @$result; print "TRACKS: ", join(', ', @names), "\n"; @@ -382,7 +383,7 @@ sub filename "INNER JOIN paths ON files.paths_id=paths.id\n" . "WHERE files.id=?\n" . "GROUP BY paths.name, files.name"); -# print "FILENAME SQL: $sql\n"; + print "FILENAME SQL: $sql\n"; my ($path, $name)=$self->cmd_onerow($sql, $id); my $id3fs_path=join('/', map { $_->{name}; } @constraints); return($self->relativise($path, $name, $mountpoint, $id3fs_path)); @@ -433,23 +434,23 @@ sub constraints_tag_list my @tags_vals=(); for my $constraint (@constraints) { - print ref($constraint), ": ", $constraint->{name}, "\n"; +# print ref($constraint), ": ", $constraint->{name}, "\n"; if(ref($constraint) eq "ID3FS::PathElement::Tag") { if(defined($lasttag)) { - print "TAGVAL\n"; +# print "TAGVAL\n"; push(@tags_vals, [$lasttag, $constraint->{id}]) if defined($constraint->{id}); $lasttag=undef; } elsif($self->tag_has_values($constraint->{id})) { - print "HASVALUES\n"; +# print "HASVALUES\n"; $lasttag=$constraint->{id} if defined($constraint->{id}); } else { - print "NOVALUES\n"; +# print "NOVALUES\n"; push(@tags, $constraint->{id}) if(defined($constraint->{id})); } } @@ -487,9 +488,9 @@ sub relativise { shift(@path); shift(@rel); - print "POP "; +# print "POP "; } - print "\n"; +# print "\n"; my $upcount=scalar(@rel); my $result="../" x $upcount; $result .= join("/",@path); @@ -515,7 +516,7 @@ sub tags_with_values my $sql=("SELECT p.name, t.name FROM tags t\n" . "INNER JOIN tags p ON t.parents_id=p.id\n" . "GROUP BY p.name, t.name\n"); -# print "SQL: $sql\n"; + print "SQL: $sql\n"; my $result=$self->cmd_rows($sql); my $tags={}; for my $pair (@$result) @@ -703,7 +704,7 @@ sub prune_paths return unless(@ids); my $sql=("DELETE FROM files WHERE paths_id IN (\n\t" . join(', ', map { "\"$_\""; } @ids). "\n\t)"); -# print "SQL: \n", $sql, "\n"; + print "SQL: \n", $sql, "\n"; $self->cmd($sql); } @@ -737,7 +738,7 @@ sub remove_unused WHERE files_x_tags.files_id IS NULL); EOT -# print "SQL: $sql\n"; + print "SQL: $sql\n"; my @sql=split(/\n\n/, $sql); $self->cmd($_) for (@sql); } diff --git a/lib/ID3FS/Path.pm b/lib/ID3FS/Path.pm index d4fec73..8e7c791 100644 --- a/lib/ID3FS/Path.pm +++ b/lib/ID3FS/Path.pm @@ -301,7 +301,7 @@ sub parse @{$self->{elements}}=$self->sort_elements(@{$self->{elements}}); my $thing=$self->elements_to_tree([ @{$self->{elements}} ]); $self->{tagtree}=$self->elements_to_tree([ @{$self->{elements}} ]); - print($self->{tagtree}->print(), "\n") if $self->{tagtree}; +# print($self->{tagtree}->print(), "\n") if $self->{tagtree}; } sub state @@ -339,7 +339,7 @@ sub sort_elements my ($self, @input)=@_; my @opstack=(); my @output=(); - print "\nINPUT: ", join(', ', map { $_->{name}; } @input), "\n"; +# print "INPUT: ", join(', ', map { $_->{name}; } @input), "\n"; while(my $thing = shift @input) { if(ref($thing) eq "ID3FS::PathElement::Tag") @@ -349,7 +349,7 @@ sub sort_elements # print "OPSTACK: ", join(', ', map { $_->{name}; } @opstack), "\n"; # print "OUTPUT: ", join(', ', map { $_->{name}; } @output), "\n"; } - else + elsif(ref($thing) eq "ID3FS::PathElement::Boolean") { # print "BOOL: $thing->{name}\n"; # bool @@ -377,7 +377,7 @@ sub sort_elements { push(@output, pop(@opstack)); } - print "STACK: ", join(', ', map { $_->{name}; } @output), "\n"; +# print "STACK: ", join(', ', map { $_->{name}; } @output), "\n"; return @output; } -- 2.11.0