X-Git-Url: http://erislabs.net/gitweb/?p=id3fs.git;a=blobdiff_plain;f=lib%2FID3FS%2FAudioFile%2FMp3.pm;h=bcbd227781f9d8775856469df8dda6e78d3c26e1;hp=423737cc9f921e7befabb02cf05a17a4da3ebd1b;hb=19d8ec06b9d280881f8065abe8bd7d8db28f5eb8;hpb=1d88d6f165856d2b8d08f098a2ee1dea22a107d1 diff --git a/lib/ID3FS/AudioFile/Mp3.pm b/lib/ID3FS/AudioFile/Mp3.pm index 423737c..bcbd227 100644 --- a/lib/ID3FS/AudioFile/Mp3.pm +++ b/lib/ID3FS/AudioFile/Mp3.pm @@ -135,11 +135,41 @@ sub write my $self=shift; if(exists($self->{mp3tag}->{ID3v1})) { - $self->{mp3tag}->{ID3v1}->write_tag; + my $del=1; + my $artist=$self->{mp3tag}->{ID3v1}->artist(); + $del=0 if($artist && $artist =~ /\S+/); + my $album=$self->{mp3tag}->{ID3v1}->album(); + $del=0 if($album && $album =~ /\S+/); + my $track=$self->{mp3tag}->{ID3v1}->title(); + $del=0 if($track && $track =~ /\S+/); + my $tracknum=$self->{mp3tag}->{ID3v1}->track(); + $del=0 if($tracknum && $tracknum !~ /^0+$/); + my $genre=$self->{mp3tag}->{ID3v1}->genre(); + $del=0 if($genre && $genre =~ /\S+/); + my $comment=$self->{mp3tag}->{ID3v1}->comment(); + $del=0 if($comment && $comment =~ /\S+/); + my $year=$self->{mp3tag}->{ID3v1}->year(); + $del=0 if($year && $year =~ /\S+/ && $year !~ /^0+$/); + if($del) + { + $self->{mp3tag}->{ID3v1}->remove_tag; + } + else + { + $self->{mp3tag}->{ID3v1}->remove_tag; + } } if(exists($self->{mp3tag}->{ID3v2})) { - $self->{mp3tag}->{ID3v2}->write_tag; + my $frames=$self->{mp3tag}->{ID3v2}->get_frame_ids(); + if($frames && scalar(keys(%$frames))) + { + $self->{mp3tag}->{ID3v2}->write_tag; + } + else + { + $self->{mp3tag}->{ID3v2}->remove_tag; + } } } @@ -208,7 +238,6 @@ sub delete if(exists($self->{mp3tag}->{ID3v2})) { - print "2: remove: $thing\n"; if($thing eq "artist") { $self->{mp3tag}->{ID3v2}->remove_frame("TPE1");