From 261cfc3301a9908e34ef38f3f0792b08a4412ff7 Mon Sep 17 00:00:00 2001 From: Ian Beckwith Date: Sun, 31 Oct 2010 00:41:21 +0100 Subject: [PATCH] id3fs-tag: view tags --- bin/id3fs-tag | 37 +++++++++++++++++++++++++++++++++++-- lib/ID3FS/AudioFile.pm | 13 +++++++------ lib/ID3FS/AudioFile/Mp3.pm | 2 +- 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/bin/id3fs-tag b/bin/id3fs-tag index df40918..9b36c21 100755 --- a/bin/id3fs-tag +++ b/bin/id3fs-tag @@ -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 diff --git a/lib/ID3FS/AudioFile.pm b/lib/ID3FS/AudioFile.pm index 6fe5fa6..75df244 100644 --- a/lib/ID3FS/AudioFile.pm +++ b/lib/ID3FS/AudioFile.pm @@ -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(); } diff --git a/lib/ID3FS/AudioFile/Mp3.pm b/lib/ID3FS/AudioFile/Mp3.pm index 295693b..cce6a29 100644 --- a/lib/ID3FS/AudioFile/Mp3.pm +++ b/lib/ID3FS/AudioFile/Mp3.pm @@ -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"; } -- 2.11.0