aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGinoGinocchio <gino.ginocchio@unmsm.edu.pe>2023-07-10 00:28:06 -0500
committerBrian Howe <howe.m.brian@gmail.com>2023-12-06 22:57:11 -0600
commitd1cc56f78c325142d9d2565e436e26efcec24aa5 (patch)
tree55bbb6434fc80abfb9fccdd06601fca14db3826a
parent0d5bbfda321f64ad78b5b74e7bdfbbbb8b64c7af (diff)
Fix: "Feature 'replace missing metadata' overwrites existing metadata that does exist" for music
-rw-r--r--MediaBrowser.Providers/MediaInfo/AudioFileProber.cs46
1 files changed, 35 insertions, 11 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
index d81704227..f8e8bdcb1 100644
--- a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
+++ b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
@@ -259,14 +259,19 @@ namespace MediaBrowser.Providers.MediaInfo
}
_libraryManager.UpdatePeople(audio, people);
- audio.Artists = performers;
- audio.AlbumArtists = albumArtists;
+ // audio.Artists = performers;
+ audio.Artists = audio.Artists != null ? audio.Artists : performers;
+ // audio.AlbumArtists = albumArtists;
+ audio.AlbumArtists = audio.AlbumArtists != null ? audio.AlbumArtists : albumArtists;
}
- audio.Name = tags.Title;
- audio.Album = tags.Album;
- audio.IndexNumber = Convert.ToInt32(tags.Track);
- audio.ParentIndexNumber = Convert.ToInt32(tags.Disc);
+ audio.Name = string.IsNullOrEmpty(audio.Name.ToString()) ? tags.Title : audio.Name;
+ // audio.Album = tags.Album;
+ audio.Album = audio.Album != null ? audio.Album : tags.Album;
+ // audio.IndexNumber = Convert.ToInt32(tags.Track);
+ audio.IndexNumber = audio.IndexNumber != null ? audio.IndexNumber : Convert.ToInt32(tags.Track);
+ // audio.ParentIndexNumber = Convert.ToInt32(tags.Disc);
+ audio.ParentIndexNumber = audio.ParentIndexNumber != null ? audio.ParentIndexNumber : Convert.ToInt32(tags.Disc);
if (tags.Year != 0)
{
@@ -280,11 +285,30 @@ namespace MediaBrowser.Providers.MediaInfo
audio.Genres = tags.Genres.Distinct(StringComparer.OrdinalIgnoreCase).ToArray();
}
- audio.SetProviderId(MetadataProvider.MusicBrainzArtist, tags.MusicBrainzArtistId);
- audio.SetProviderId(MetadataProvider.MusicBrainzAlbumArtist, tags.MusicBrainzReleaseArtistId);
- audio.SetProviderId(MetadataProvider.MusicBrainzAlbum, tags.MusicBrainzReleaseId);
- audio.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, tags.MusicBrainzReleaseGroupId);
- audio.SetProviderId(MetadataProvider.MusicBrainzTrack, tags.MusicBrainzTrackId);
+ if (!audio.ProviderIds.TryGetValue("MusicBrainzArtist", out var artistValue) || artistValue == null)
+ {
+ audio.SetProviderId(MetadataProvider.MusicBrainzArtist, tags.MusicBrainzArtistId);
+ }
+
+ if (!audio.ProviderIds.TryGetValue("MusicBrainzAlbumArtist", out var albumArtistValue) || albumArtistValue == null)
+ {
+ audio.SetProviderId(MetadataProvider.MusicBrainzAlbumArtist, tags.MusicBrainzReleaseArtistId);
+ }
+
+ if (!audio.ProviderIds.TryGetValue("MusicBrainzAlbum", out var albumValue) || albumValue == null)
+ {
+ audio.SetProviderId(MetadataProvider.MusicBrainzAlbum, tags.MusicBrainzReleaseId);
+ }
+
+ if (!audio.ProviderIds.TryGetValue("MusicBrainzReleaseGroup", out var releaseGroupValue) || releaseGroupValue == null)
+ {
+ audio.SetProviderId(MetadataProvider.MusicBrainzReleaseGroup, tags.MusicBrainzReleaseGroupId);
+ }
+
+ if (!audio.ProviderIds.TryGetValue("MusicBrainzTrack", out var trackValue) || trackValue == null)
+ {
+ audio.SetProviderId(MetadataProvider.MusicBrainzTrack, tags.MusicBrainzTrackId);
+ }
}
}
}