Skip to content

Commit d38c44d

Browse files
Qstickmynameisbogdan
andauthoredFeb 4, 2024
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>
1 parent 3702fa7 commit d38c44d

File tree

7 files changed

+48
-11
lines changed

7 files changed

+48
-11
lines changed
 

‎frontend/src/Settings/Metadata/MetadataProvider/MetadataProvider.js

+17
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,23 @@ function MetadataProvider(props) {
6161
/>
6262
</FormGroup>
6363

64+
{
65+
settings.writeAudioTags.value !== 'no' &&
66+
<FormGroup>
67+
<FormLabel>
68+
{translate('EmbedCoverArtInAudioFiles')}
69+
</FormLabel>
70+
71+
<FormInputGroup
72+
type={inputTypes.CHECK}
73+
name="embedCoverArt"
74+
helpText={translate('EmbedCoverArtHelpText')}
75+
onChange={onInputChange}
76+
{...settings.embedCoverArt}
77+
/>
78+
</FormGroup>
79+
}
80+
6481
<FormGroup>
6582
<FormLabel>
6683
{translate('ScrubExistingTags')}

‎src/Lidarr.Api.V1/Config/MetadataProviderConfigResource.cs

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class MetadataProviderConfigResource : RestResource
88
public string MetadataSource { get; set; }
99
public WriteAudioTagsType WriteAudioTags { get; set; }
1010
public bool ScrubAudioTags { get; set; }
11+
public bool EmbedCoverArt { get; set; }
1112
}
1213

1314
public static class MetadataProviderConfigResourceMapper
@@ -19,6 +20,7 @@ public static MetadataProviderConfigResource ToResource(IConfigService model)
1920
MetadataSource = model.MetadataSource,
2021
WriteAudioTags = model.WriteAudioTags,
2122
ScrubAudioTags = model.ScrubAudioTags,
23+
EmbedCoverArt = model.EmbedCoverArt,
2224
};
2325
}
2426
}

‎src/NzbDrone.Core.Test/MediaFiles/AudioTagServiceFixture.cs

+4
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public void Setup()
6565
.Setup(x => x.WriteAudioTags)
6666
.Returns(WriteAudioTagsType.Sync);
6767

68+
Mocker.GetMock<IConfigService>()
69+
.Setup(x => x.EmbedCoverArt)
70+
.Returns(true);
71+
6872
var imageFile = Path.Combine(_testdir, "nin.png");
6973
var imageSize = _diskProvider.GetFileSize(imageFile);
7074

‎src/NzbDrone.Core/Configuration/ConfigService.cs

+7
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,13 @@ public bool ScrubAudioTags
283283
set { SetValue("ScrubAudioTags", value); }
284284
}
285285

286+
public bool EmbedCoverArt
287+
{
288+
get { return GetValueBoolean("EmbedCoverArt", true); }
289+
290+
set { SetValue("EmbedCoverArt", value); }
291+
}
292+
286293
public int FirstDayOfWeek
287294
{
288295
get { return GetValueInt("FirstDayOfWeek", (int)CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek); }

‎src/NzbDrone.Core/Configuration/IConfigService.cs

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public interface IConfigService
7676
string MetadataSource { get; set; }
7777
WriteAudioTagsType WriteAudioTags { get; set; }
7878
bool ScrubAudioTags { get; set; }
79+
bool EmbedCoverArt { get; set; }
7980

8081
// Forms Auth
8182
string RijndaelPassphrase { get; }

‎src/NzbDrone.Core/Localization/Core/en.json

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

‎src/NzbDrone.Core/MediaFiles/AudioTagService.cs

+15-11
Original file line numberDiff line numberDiff line change
@@ -80,21 +80,25 @@ public AudioTag GetTrackMetadata(TrackFile trackfile)
8080
var albumartist = album.Artist.Value;
8181
var artist = track.ArtistMetadata.Value;
8282

83-
var cover = album.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Cover);
8483
string imageFile = null;
8584
long imageSize = 0;
86-
if (cover != null)
85+
86+
if (_configService.EmbedCoverArt)
8787
{
88-
imageFile = _mediaCoverService.GetCoverPath(album.Id, MediaCoverEntity.Album, cover.CoverType, cover.Extension, null);
89-
_logger.Trace($"Embedding: {imageFile}");
90-
var fileInfo = _diskProvider.GetFileInfo(imageFile);
91-
if (fileInfo.Exists)
92-
{
93-
imageSize = fileInfo.Length;
94-
}
95-
else
88+
var cover = album.Images.FirstOrDefault(x => x.CoverType == MediaCoverTypes.Cover);
89+
if (cover != null)
9690
{
97-
imageFile = null;
91+
imageFile = _mediaCoverService.GetCoverPath(album.Id, MediaCoverEntity.Album, cover.CoverType, cover.Extension, null);
92+
_logger.Trace("Embedding: {0}", imageFile);
93+
var fileInfo = _diskProvider.GetFileInfo(imageFile);
94+
if (fileInfo.Exists)
95+
{
96+
imageSize = fileInfo.Length;
97+
}
98+
else
99+
{
100+
imageFile = null;
101+
}
98102
}
99103
}
100104

0 commit comments

Comments
 (0)
Please sign in to comment.