New: Option to disable cover art embed in files (#4547)

* New: Option to disable cover art embed in files

Fixes #2488

* Update src/NzbDrone.Core/MediaFiles/AudioTagService.cs

Co-authored-by: Bogdan <mynameisbogdan@users.noreply.github.com>
pull/4548/head
Qstick 3 months ago committed by GitHub
parent 3702fa773c
commit d38c44d25e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -61,6 +61,23 @@ function MetadataProvider(props) {
/>
</FormGroup>
{
settings.writeAudioTags.value !== 'no' &&
<FormGroup>
<FormLabel>
{translate('EmbedCoverArtInAudioFiles')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="embedCoverArt"
helpText={translate('EmbedCoverArtHelpText')}
onChange={onInputChange}
{...settings.embedCoverArt}
/>
</FormGroup>
}
<FormGroup>
<FormLabel>
{translate('ScrubExistingTags')}

@ -8,6 +8,7 @@ namespace Lidarr.Api.V1.Config
public string MetadataSource { get; set; }
public WriteAudioTagsType WriteAudioTags { get; set; }
public bool ScrubAudioTags { get; set; }
public bool EmbedCoverArt { get; set; }
}
public static class MetadataProviderConfigResourceMapper
@ -19,6 +20,7 @@ namespace Lidarr.Api.V1.Config
MetadataSource = model.MetadataSource,
WriteAudioTags = model.WriteAudioTags,
ScrubAudioTags = model.ScrubAudioTags,
EmbedCoverArt = model.EmbedCoverArt,
};
}
}

@ -65,6 +65,10 @@ namespace NzbDrone.Core.Test.MediaFiles.AudioTagServiceFixture
.Setup(x => x.WriteAudioTags)
.Returns(WriteAudioTagsType.Sync);
Mocker.GetMock<IConfigService>()
.Setup(x => x.EmbedCoverArt)
.Returns(true);
var imageFile = Path.Combine(_testdir, "nin.png");
var imageSize = _diskProvider.GetFileSize(imageFile);

@ -283,6 +283,13 @@ namespace NzbDrone.Core.Configuration
set { SetValue("ScrubAudioTags", value); }
}
public bool EmbedCoverArt
{
get { return GetValueBoolean("EmbedCoverArt", true); }
set { SetValue("EmbedCoverArt", value); }
}
public int FirstDayOfWeek
{
get { return GetValueInt("FirstDayOfWeek", (int)CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek); }

@ -76,6 +76,7 @@ namespace NzbDrone.Core.Configuration
string MetadataSource { get; set; }
WriteAudioTagsType WriteAudioTags { get; set; }
bool ScrubAudioTags { get; set; }
bool EmbedCoverArt { get; set; }
// Forms Auth
string RijndaelPassphrase { get; }

@ -402,6 +402,8 @@
"EditSelectedDownloadClients": "Edit Selected Download Clients",
"EditSelectedImportLists": "Edit Selected Import Lists",
"EditSelectedIndexers": "Edit Selected Indexers",
"EmbedCoverArtInAudioFiles": "Embed Cover Art In Audio Files",
"EmbedCoverArtHelpText": "Embed Lidarr album art into audio files when writing tags",
"Enable": "Enable",
"EnableAutomaticAdd": "Enable Automatic Add",
"EnableAutomaticAddHelpText": "Add artist/albums to {appName} when syncs are performed via the UI or by {appName}",

@ -80,21 +80,25 @@ namespace NzbDrone.Core.MediaFiles
var albumartist = album.Artist.Value;
var artist = track.ArtistMetadata.Value;
var cover = album.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Cover);
string imageFile = null;
long imageSize = 0;
if (cover != null)
if (_configService.EmbedCoverArt)
{
imageFile = _mediaCoverService.GetCoverPath(album.Id, MediaCoverEntity.Album, cover.CoverType, cover.Extension, null);
_logger.Trace($"Embedding: {imageFile}");
var fileInfo = _diskProvider.GetFileInfo(imageFile);
if (fileInfo.Exists)
{
imageSize = fileInfo.Length;
}
else
var cover = album.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Cover);
if (cover != null)
{
imageFile = null;
imageFile = _mediaCoverService.GetCoverPath(album.Id, MediaCoverEntity.Album, cover.CoverType, cover.Extension, null);
_logger.Trace("Embedding: {0}", imageFile);
var fileInfo = _diskProvider.GetFileInfo(imageFile);
if (fileInfo.Exists)
{
imageSize = fileInfo.Length;
}
else
{
imageFile = null;
}
}
}

Loading…
Cancel
Save