X-Git-Url: http://erislabs.net/gitweb/?p=id3fs.git;a=blobdiff_plain;f=lib%2FID3FS%2FAudioFile%2FMp3.pm;h=bcbd227781f9d8775856469df8dda6e78d3c26e1;hp=b4f340c0b6691ffbb89e76aa69a94f4017b8ae77;hb=19d8ec06b9d280881f8065abe8bd7d8db28f5eb8;hpb=4f5ee0606c8b9726493ffab0e97872c670498184 diff --git a/lib/ID3FS/AudioFile/Mp3.pm b/lib/ID3FS/AudioFile/Mp3.pm index b4f340c..bcbd227 100644 --- a/lib/ID3FS/AudioFile/Mp3.pm +++ b/lib/ID3FS/AudioFile/Mp3.pm @@ -133,7 +133,44 @@ sub add_tags sub write { my $self=shift; - $self->{mp3tag}->update_tags(); + if(exists($self->{mp3tag}->{ID3v1})) + { + 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})) + { + my $frames=$self->{mp3tag}->{ID3v2}->get_frame_ids(); + if($frames && scalar(keys(%$frames))) + { + $self->{mp3tag}->{ID3v2}->write_tag; + } + else + { + $self->{mp3tag}->{ID3v2}->remove_tag; + } + } } sub delete_artist { shift->delete("artist"); } @@ -201,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");