mirror of https://github.com/lidarr/Lidarr
New: Preserve replaygain tags
This commit is contained in:
parent
0121095b3e
commit
2a8c67badc
|
@ -326,7 +326,7 @@ namespace NzbDrone.Core.Test.MediaFiles.AudioTagServiceFixture
|
||||||
[Test]
|
[Test]
|
||||||
public void should_ignore_non_parsable_id3v23_date()
|
public void should_ignore_non_parsable_id3v23_date()
|
||||||
{
|
{
|
||||||
GivenFileCopy("nin.mp2");
|
GivenFileCopy("nin.mp3");
|
||||||
|
|
||||||
using (var file = TagLib.File.Create(_copiedFile))
|
using (var file = TagLib.File.Create(_copiedFile))
|
||||||
{
|
{
|
||||||
|
@ -440,5 +440,37 @@ namespace NzbDrone.Core.Test.MediaFiles.AudioTagServiceFixture
|
||||||
Mocker.GetMock<IEventAggregator>()
|
Mocker.GetMock<IEventAggregator>()
|
||||||
.Verify(v => v.PublishEvent(It.IsAny<TrackFileRetaggedEvent>()), Times.Once());
|
.Verify(v => v.PublishEvent(It.IsAny<TrackFileRetaggedEvent>()), Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestCase("nin.mp3")]
|
||||||
|
public void should_ignore_replaygain_tags_during_scrub(string filename)
|
||||||
|
{
|
||||||
|
Mocker.GetMock<IConfigService>()
|
||||||
|
.Setup(x => x.ScrubAudioTags)
|
||||||
|
.Returns(true);
|
||||||
|
|
||||||
|
GivenFileCopy(filename);
|
||||||
|
|
||||||
|
using (var preFile = TagLib.File.Create(_copiedFile))
|
||||||
|
{
|
||||||
|
preFile.Tag.ReplayGainAlbumPeak = 1;
|
||||||
|
preFile.Tag.ReplayGainAlbumGain = 500;
|
||||||
|
preFile.Tag.ReplayGainTrackPeak = 2;
|
||||||
|
preFile.Tag.ReplayGainTrackGain = 250;
|
||||||
|
preFile.Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
var file = GivenPopulatedTrackfile(0);
|
||||||
|
|
||||||
|
file.Path = _copiedFile;
|
||||||
|
Subject.WriteTags(file, false, true);
|
||||||
|
|
||||||
|
using (var postFile = TagLib.File.Create(_copiedFile))
|
||||||
|
{
|
||||||
|
postFile.Tag.ReplayGainAlbumGain.Should().Be(500);
|
||||||
|
postFile.Tag.ReplayGainAlbumPeak.Should().Be(1);
|
||||||
|
postFile.Tag.ReplayGainTrackGain.Should().Be(250);
|
||||||
|
postFile.Tag.ReplayGainTrackPeak.Should().Be(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,8 +151,24 @@ namespace NzbDrone.Core.MediaFiles
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
file = TagLib.File.Create(path);
|
file = TagLib.File.Create(path);
|
||||||
|
|
||||||
|
var replayGainAlbumGain = file.Tag.ReplayGainAlbumGain;
|
||||||
|
var replayGainAlbumPeak = file.Tag.ReplayGainAlbumPeak;
|
||||||
|
var replayGainTrackGain = file.Tag.ReplayGainTrackGain;
|
||||||
|
var replayGainTrackPeak = file.Tag.ReplayGainTrackPeak;
|
||||||
|
|
||||||
file.RemoveTags(TagLib.TagTypes.AllTags);
|
file.RemoveTags(TagLib.TagTypes.AllTags);
|
||||||
file.Save();
|
file.Save();
|
||||||
|
file.Dispose();
|
||||||
|
|
||||||
|
file = TagLib.File.Create(path);
|
||||||
|
|
||||||
|
file.Tag.ReplayGainAlbumGain = replayGainAlbumGain;
|
||||||
|
file.Tag.ReplayGainAlbumPeak = replayGainAlbumPeak;
|
||||||
|
file.Tag.ReplayGainTrackGain = replayGainTrackGain;
|
||||||
|
file.Tag.ReplayGainTrackPeak = replayGainTrackPeak;
|
||||||
|
|
||||||
|
file.Save();
|
||||||
}
|
}
|
||||||
catch (CorruptFileException ex)
|
catch (CorruptFileException ex)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue