id3fs-tag: view tags
authorIan Beckwith <ianb@erislabs.net>
Sat, 30 Oct 2010 23:41:21 +0000 (00:41 +0100)
committerIan Beckwith <ianb@erislabs.net>
Sat, 30 Oct 2010 23:41:21 +0000 (00:41 +0100)
bin/id3fs-tag
lib/ID3FS/AudioFile.pm
lib/ID3FS/AudioFile/Mp3.pm

index df40918..9b36c21 100755 (executable)
@@ -120,8 +120,11 @@ sub do_adds
        $file->add_tags($replace_tags[1]);
     }
 
-    return($artist  || $album || $track    || $tracknum || $year || $v1genre ||
-          $comment || $genre || $add_tags || (@replace_tags && $replace_tags[0]));
+    return(defined($artist)   || defined($album) || defined($track)    ||
+          defined($tracknum) || defined($year)  || defined($v1genre)  ||
+          defined($comment)  || defined($genre) || defined($add_tags) ||
+          (@replace_tags && defined($replace_tags[1])));
+
 }
 
 sub do_write
@@ -133,6 +136,36 @@ sub do_write
 sub do_display
 {
     my($file)=@_;
+    my $artist=$file->artist();
+    my $album=$file->album();
+    my $track=$file->track();
+    my $tracknum=$file->tracknum();
+    my $year=$file->year();
+    my $comment=$file->comment();
+    my $v1genre=$file->v1genre();
+    my @tags=$file->tags();
+    if($verbose)
+    {
+       print $file->path(), ":\n";
+       print "tracknum: $tracknum\n" if($tracknum);
+       print "artist: $artist\n"     if($artist);
+       print "album: $album\n"       if($album);
+       print "song: $track\n"        if($track);
+       print "year: $year\n"         if($year);
+       print "v1genre: $v1genre\n"   if($v1genre);
+       print "comment: $comment\n"   if($comment);
+    }
+    else
+    {
+       my @fields=($file->path(), $tracknum, $artist, $album, $track,
+                   $year, $v1genre, $comment);
+       @fields=map { defined($_) ? $_ : ""; } @fields;
+       print join(':', @fields), "\n";
+       if(@tags)
+       {
+           print "tags:", join(", ", @tags), "\n";
+       }
+    }
 }
 
 sub usage
index 6fe5fa6..75df244 100644 (file)
@@ -29,26 +29,26 @@ sub new
     my $self={};
     bless($self,$class);
 
-    my $path=shift;
-    my $ext=($path=~/.*\.(.*)/)[0];
+    $self->{path}=shift;
+    my $ext=($self->{path}=~/.*\.(.*)/)[0];
     return undef unless($ext);
     my $me=shift;
     $ext=lc($ext);
     if($ext eq "mp3")
     {
-       $self->{audiofile}=ID3FS::AudioFile::Mp3->new($path);
+       $self->{audiofile}=ID3FS::AudioFile::Mp3->new($self->{path});
     }
     elsif($ext eq "ogg")
     {
-       $self->{audiofile}=ID3FS::AudioFile::Ogg->new($path);
+       $self->{audiofile}=ID3FS::AudioFile::Ogg->new($self->{path});
     }
     elsif($ext eq "flac")
     {
-       $self->{audiofile}=ID3FS::AudioFile::Flac->new($path);
+       $self->{audiofile}=ID3FS::AudioFile::Flac->new($self->{path});
     }
     else
     {
-       print("$me: $path: Unknown extension: $ext\n");
+       print("$me: $self->{path}: Unknown extension: $ext\n");
        return undef;
     }
     return $self;
@@ -77,6 +77,7 @@ sub v1genre   { return(shift->set("v1genre", @_));  }
 sub comment   { return(shift->set("comment", @_));  }
 sub audiotype { return(shift->set("audiotype"));    }
 sub haspic    { return(shift->set("haspic"));       }
+sub path      { return(shift->{path});              }
 
 sub delete_artist   { shift->{audiofile}->delete_artist();   }
 sub delete_album    { shift->{audiofile}->delete_album();    }
index 295693b..cce6a29 100644 (file)
@@ -71,7 +71,7 @@ sub year      { return(shift->set("year",     @_)); }
 sub artist    { return(shift->set("artist",   @_)); }
 sub album     { return(shift->set("album",    @_)); }
 sub track     { return(shift->set("title",    @_)); }
-sub tracknum  { return(shift->set("tracknum", @_)); }
+sub tracknum  { return(shift->set("track",    @_)); }
 sub comment   { return(shift->set("comment",  @_)); }
 
 sub audiotype { return "mp3";         }