Use TryGetProviderId where possible

This commit is contained in:
Shadowghost 2025-02-21 11:58:46 +01:00
parent 5303445c9b
commit 5ff2767012
17 changed files with 42 additions and 95 deletions

View File

@ -138,11 +138,9 @@ namespace MediaBrowser.Controller.Entities.Audio
private static List<string> GetUserDataKeys(MusicArtist item) private static List<string> GetUserDataKeys(MusicArtist item)
{ {
var list = new List<string>(); var list = new List<string>();
var id = item.GetProviderId(MetadataProvider.MusicBrainzArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzArtist, out var externalId))
if (!string.IsNullOrEmpty(id))
{ {
list.Add("Artist-Musicbrainz-" + id); list.Add("Artist-Musicbrainz-" + externalId);
} }
list.Add("Artist-" + (item.Name ?? string.Empty).RemoveDiacritics()); list.Add("Artist-" + (item.Name ?? string.Empty).RemoveDiacritics());

View File

@ -17,9 +17,7 @@ public class ImdbExternalUrlProvider : IExternalUrlProvider
public IEnumerable<string> GetExternalUrls(BaseItem item) public IEnumerable<string> GetExternalUrls(BaseItem item)
{ {
var baseUrl = "https://www.imdb.com/"; var baseUrl = "https://www.imdb.com/";
var externalId = item.GetProviderId(MetadataProvider.Imdb); if (item.TryGetProviderId(MetadataProvider.Imdb, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return baseUrl + $"title/{externalId}"; yield return baseUrl + $"title/{externalId}";
} }

View File

@ -17,8 +17,7 @@ public class AudioDbAlbumExternalUrlProvider : IExternalUrlProvider
/// <inheritdoc/> /// <inheritdoc/>
public IEnumerable<string> GetExternalUrls(BaseItem item) public IEnumerable<string> GetExternalUrls(BaseItem item)
{ {
var externalId = item.GetProviderId(MetadataProvider.AudioDbAlbum); if (item.TryGetProviderId(MetadataProvider.AudioDbAlbum, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
var baseUrl = "https://www.theaudiodb.com/"; var baseUrl = "https://www.theaudiodb.com/";
switch (item) switch (item)

View File

@ -4,7 +4,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Text.Json; using System.Text.Json;
using System.Threading; using System.Threading;
@ -50,9 +49,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
/// <inheritdoc /> /// <inheritdoc />
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken) public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{ {
var id = item.GetProviderId(MetadataProvider.MusicBrainzReleaseGroup); if (item.TryGetProviderId(MetadataProvider.MusicBrainzReleaseGroup, out var id))
if (!string.IsNullOrWhiteSpace(id))
{ {
await AudioDbAlbumProvider.Current.EnsureInfo(id, cancellationToken).ConfigureAwait(false); await AudioDbAlbumProvider.Current.EnsureInfo(id, cancellationToken).ConfigureAwait(false);
@ -70,7 +67,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
} }
} }
return Enumerable.Empty<RemoteImageInfo>(); return [];
} }
private List<RemoteImageInfo> GetImages(AudioDbAlbumProvider.Album item) private List<RemoteImageInfo> GetImages(AudioDbAlbumProvider.Album item)

View File

@ -17,8 +17,7 @@ public class AudioDbArtistExternalUrlProvider : IExternalUrlProvider
/// <inheritdoc/> /// <inheritdoc/>
public IEnumerable<string> GetExternalUrls(BaseItem item) public IEnumerable<string> GetExternalUrls(BaseItem item)
{ {
var externalId = item.GetProviderId(MetadataProvider.AudioDbArtist); if (item.TryGetProviderId(MetadataProvider.AudioDbArtist, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
var baseUrl = "https://www.theaudiodb.com/"; var baseUrl = "https://www.theaudiodb.com/";
switch (item) switch (item)

View File

@ -4,7 +4,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Text.Json; using System.Text.Json;
using System.Threading; using System.Threading;
@ -43,21 +42,19 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
/// <inheritdoc /> /// <inheritdoc />
public IEnumerable<ImageType> GetSupportedImages(BaseItem item) public IEnumerable<ImageType> GetSupportedImages(BaseItem item)
{ {
return new ImageType[] return
{ [
ImageType.Primary, ImageType.Primary,
ImageType.Logo, ImageType.Logo,
ImageType.Banner, ImageType.Banner,
ImageType.Backdrop ImageType.Backdrop
}; ];
} }
/// <inheritdoc /> /// <inheritdoc />
public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken) public async Task<IEnumerable<RemoteImageInfo>> GetImages(BaseItem item, CancellationToken cancellationToken)
{ {
var id = item.GetProviderId(MetadataProvider.MusicBrainzArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzArtist, out var id))
if (!string.IsNullOrWhiteSpace(id))
{ {
await AudioDbArtistProvider.Current.EnsureArtistInfo(id, cancellationToken).ConfigureAwait(false); await AudioDbArtistProvider.Current.EnsureArtistInfo(id, cancellationToken).ConfigureAwait(false);
@ -75,7 +72,7 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
} }
} }
return Enumerable.Empty<RemoteImageInfo>(); return [];
} }
private List<RemoteImageInfo> GetImages(AudioDbArtistProvider.Artist item) private List<RemoteImageInfo> GetImages(AudioDbArtistProvider.Artist item)

View File

@ -19,8 +19,7 @@ public class MusicBrainzAlbumArtistExternalUrlProvider : IExternalUrlProvider
{ {
if (item is MusicAlbum) if (item is MusicAlbum)
{ {
var externalId = item.GetProviderId(MetadataProvider.MusicBrainzAlbumArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzAlbumArtist, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return Plugin.Instance!.Configuration.Server + $"/artist/{externalId}"; yield return Plugin.Instance!.Configuration.Server + $"/artist/{externalId}";
} }

View File

@ -19,8 +19,7 @@ public class MusicBrainzAlbumExternalUrlProvider : IExternalUrlProvider
{ {
if (item is MusicAlbum) if (item is MusicAlbum)
{ {
var externalId = item.GetProviderId(MetadataProvider.MusicBrainzArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzAlbum, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return Plugin.Instance!.Configuration.Server + $"/release/{externalId}"; yield return Plugin.Instance!.Configuration.Server + $"/release/{externalId}";
} }

View File

@ -17,8 +17,7 @@ public class MusicBrainzArtistExternalUrlProvider : IExternalUrlProvider
/// <inheritdoc/> /// <inheritdoc/>
public IEnumerable<string> GetExternalUrls(BaseItem item) public IEnumerable<string> GetExternalUrls(BaseItem item)
{ {
var externalId = item.GetProviderId(MetadataProvider.MusicBrainzArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzArtist, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
switch (item) switch (item)
{ {

View File

@ -19,8 +19,7 @@ public class MusicBrainzReleaseGroupExternalUrlProvider : IExternalUrlProvider
{ {
if (item is MusicAlbum) if (item is MusicAlbum)
{ {
var externalId = item.GetProviderId(MetadataProvider.MusicBrainzReleaseGroup); if (item.TryGetProviderId(MetadataProvider.MusicBrainzReleaseGroup, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return Plugin.Instance!.Configuration.Server + $"/release-group/{externalId}"; yield return Plugin.Instance!.Configuration.Server + $"/release-group/{externalId}";
} }

View File

@ -19,8 +19,7 @@ public class MusicBrainzTrackExternalUrlProvider : IExternalUrlProvider
{ {
if (item is Audio) if (item is Audio)
{ {
var externalId = item.GetProviderId(MetadataProvider.MusicBrainzArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzTrack, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return Plugin.Instance!.Configuration.Server + $"/track/{externalId}"; yield return Plugin.Instance!.Configuration.Server + $"/track/{externalId}";
} }

View File

@ -23,16 +23,14 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider
switch (item) switch (item)
{ {
case Series: case Series:
var externalId = item.GetProviderId(MetadataProvider.Tmdb); if (item.TryGetProviderId(MetadataProvider.Tmdb, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return TmdbUtils.BaseTmdbUrl + $"tv/{externalId}"; yield return TmdbUtils.BaseTmdbUrl + $"tv/{externalId}";
} }
break; break;
case Season season: case Season season:
var seriesExternalId = season.Series.GetProviderId(MetadataProvider.Tmdb); if (season.Series.TryGetProviderId(MetadataProvider.Tmdb, out var seriesExternalId))
if (!string.IsNullOrEmpty(seriesExternalId))
{ {
var orderString = season.Series.DisplayOrder; var orderString = season.Series.DisplayOrder;
if (string.IsNullOrEmpty(orderString)) if (string.IsNullOrEmpty(orderString))
@ -52,8 +50,7 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider
break; break;
case Episode episode: case Episode episode:
seriesExternalId = episode.Series.GetProviderId(MetadataProvider.Tmdb); if (episode.Series.TryGetProviderId(MetadataProvider.Imdb, out seriesExternalId))
if (!string.IsNullOrEmpty(seriesExternalId))
{ {
var orderString = episode.Series.DisplayOrder; var orderString = episode.Series.DisplayOrder;
if (string.IsNullOrEmpty(orderString)) if (string.IsNullOrEmpty(orderString))
@ -73,24 +70,21 @@ public class TmdbExternalUrlProvider : IExternalUrlProvider
break; break;
case Movie: case Movie:
externalId = item.GetProviderId(MetadataProvider.Tmdb); if (item.TryGetProviderId(MetadataProvider.Tmdb, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return TmdbUtils.BaseTmdbUrl + $"movie/{externalId}"; yield return TmdbUtils.BaseTmdbUrl + $"movie/{externalId}";
} }
break; break;
case Person: case Person:
externalId = item.GetProviderId(MetadataProvider.Tmdb); if (item.TryGetProviderId(MetadataProvider.Tmdb, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return TmdbUtils.BaseTmdbUrl + $"person/{externalId}"; yield return TmdbUtils.BaseTmdbUrl + $"person/{externalId}";
} }
break; break;
case BoxSet: case BoxSet:
externalId = item.GetProviderId(MetadataProvider.Tmdb); if (item.TryGetProviderId(MetadataProvider.Tmdb, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return TmdbUtils.BaseTmdbUrl + $"collection/{externalId}"; yield return TmdbUtils.BaseTmdbUrl + $"collection/{externalId}";
} }

View File

@ -16,8 +16,7 @@ public class Zap2ItExternalUrlProvider : IExternalUrlProvider
/// <inheritdoc/> /// <inheritdoc/>
public IEnumerable<string> GetExternalUrls(BaseItem item) public IEnumerable<string> GetExternalUrls(BaseItem item)
{ {
var externalId = item.GetProviderId(MetadataProvider.Zap2It); if (item.TryGetProviderId(MetadataProvider.Zap2It, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
yield return $"http://tvlistings.zap2it.com/overview.html?programSeriesId={externalId}"; yield return $"http://tvlistings.zap2it.com/overview.html?programSeriesId={externalId}";
} }

View File

@ -544,16 +544,13 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("aspectratio", hasAspectRatio.AspectRatio); writer.WriteElementString("aspectratio", hasAspectRatio.AspectRatio);
} }
var tmdbCollection = item.GetProviderId(MetadataProvider.TmdbCollection); if (item.TryGetProviderId(MetadataProvider.Tmdb, out var tmdbCollection))
if (!string.IsNullOrEmpty(tmdbCollection))
{ {
writer.WriteElementString("collectionnumber", tmdbCollection); writer.WriteElementString("collectionnumber", tmdbCollection);
writtenProviderIds.Add(MetadataProvider.TmdbCollection.ToString()); writtenProviderIds.Add(MetadataProvider.TmdbCollection.ToString());
} }
var imdb = item.GetProviderId(MetadataProvider.Imdb); if (item.TryGetProviderId(MetadataProvider.Imdb, out var imdb))
if (!string.IsNullOrEmpty(imdb))
{ {
if (item is Series) if (item is Series)
{ {
@ -570,16 +567,14 @@ namespace MediaBrowser.XbmcMetadata.Savers
// Series xml saver already saves this // Series xml saver already saves this
if (item is not Series) if (item is not Series)
{ {
var tvdb = item.GetProviderId(MetadataProvider.Tvdb); if (item.TryGetProviderId(MetadataProvider.Tvdb, out var tvdb))
if (!string.IsNullOrEmpty(tvdb))
{ {
writer.WriteElementString("tvdbid", tvdb); writer.WriteElementString("tvdbid", tvdb);
writtenProviderIds.Add(MetadataProvider.Tvdb.ToString()); writtenProviderIds.Add(MetadataProvider.Tvdb.ToString());
} }
} }
var tmdb = item.GetProviderId(MetadataProvider.Tmdb); if (item.TryGetProviderId(MetadataProvider.Tmdb, out var tmdb))
if (!string.IsNullOrEmpty(tmdb))
{ {
writer.WriteElementString("tmdbid", tmdb); writer.WriteElementString("tmdbid", tmdb);
writtenProviderIds.Add(MetadataProvider.Tmdb.ToString()); writtenProviderIds.Add(MetadataProvider.Tmdb.ToString());
@ -687,64 +682,49 @@ namespace MediaBrowser.XbmcMetadata.Savers
} }
} }
var externalId = item.GetProviderId(MetadataProvider.AudioDbArtist); if (item.TryGetProviderId(MetadataProvider.AudioDbArtist, out var externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("audiodbartistid", externalId); writer.WriteElementString("audiodbartistid", externalId);
writtenProviderIds.Add(MetadataProvider.AudioDbArtist.ToString()); writtenProviderIds.Add(MetadataProvider.AudioDbArtist.ToString());
} }
externalId = item.GetProviderId(MetadataProvider.AudioDbAlbum); if (item.TryGetProviderId(MetadataProvider.AudioDbAlbum, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("audiodbalbumid", externalId); writer.WriteElementString("audiodbalbumid", externalId);
writtenProviderIds.Add(MetadataProvider.AudioDbAlbum.ToString()); writtenProviderIds.Add(MetadataProvider.AudioDbAlbum.ToString());
} }
externalId = item.GetProviderId(MetadataProvider.Zap2It); if (item.TryGetProviderId(MetadataProvider.Zap2It, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("zap2itid", externalId); writer.WriteElementString("zap2itid", externalId);
writtenProviderIds.Add(MetadataProvider.Zap2It.ToString()); writtenProviderIds.Add(MetadataProvider.Zap2It.ToString());
} }
externalId = item.GetProviderId(MetadataProvider.MusicBrainzAlbum); if (item.TryGetProviderId(MetadataProvider.MusicBrainzAlbum, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("musicbrainzalbumid", externalId); writer.WriteElementString("musicbrainzalbumid", externalId);
writtenProviderIds.Add(MetadataProvider.MusicBrainzAlbum.ToString()); writtenProviderIds.Add(MetadataProvider.MusicBrainzAlbum.ToString());
} }
externalId = item.GetProviderId(MetadataProvider.MusicBrainzAlbumArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzAlbumArtist, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("musicbrainzalbumartistid", externalId); writer.WriteElementString("musicbrainzalbumartistid", externalId);
writtenProviderIds.Add(MetadataProvider.MusicBrainzAlbumArtist.ToString()); writtenProviderIds.Add(MetadataProvider.MusicBrainzAlbumArtist.ToString());
} }
externalId = item.GetProviderId(MetadataProvider.MusicBrainzArtist); if (item.TryGetProviderId(MetadataProvider.MusicBrainzArtist, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("musicbrainzartistid", externalId); writer.WriteElementString("musicbrainzartistid", externalId);
writtenProviderIds.Add(MetadataProvider.MusicBrainzArtist.ToString()); writtenProviderIds.Add(MetadataProvider.MusicBrainzArtist.ToString());
} }
externalId = item.GetProviderId(MetadataProvider.MusicBrainzReleaseGroup); if (item.TryGetProviderId(MetadataProvider.MusicBrainzReleaseGroup, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("musicbrainzreleasegroupid", externalId); writer.WriteElementString("musicbrainzreleasegroupid", externalId);
writtenProviderIds.Add(MetadataProvider.MusicBrainzReleaseGroup.ToString()); writtenProviderIds.Add(MetadataProvider.MusicBrainzReleaseGroup.ToString());
} }
externalId = item.GetProviderId(MetadataProvider.TvRage); if (item.TryGetProviderId(MetadataProvider.TvRage, out externalId))
if (!string.IsNullOrEmpty(externalId))
{ {
writer.WriteElementString("tvrageid", externalId); writer.WriteElementString("tvrageid", externalId);
writtenProviderIds.Add(MetadataProvider.TvRage.ToString()); writtenProviderIds.Add(MetadataProvider.TvRage.ToString());

View File

@ -91,9 +91,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
/// <inheritdoc /> /// <inheritdoc />
protected override void WriteCustomElements(BaseItem item, XmlWriter writer) protected override void WriteCustomElements(BaseItem item, XmlWriter writer)
{ {
var imdb = item.GetProviderId(MetadataProvider.Imdb); if (item.TryGetProviderId(MetadataProvider.Imdb, out var imdb))
if (!string.IsNullOrEmpty(imdb))
{ {
writer.WriteElementString("id", imdb); writer.WriteElementString("id", imdb);
} }

View File

@ -54,9 +54,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{ {
var series = (Series)item; var series = (Series)item;
var tvdb = item.GetProviderId(MetadataProvider.Tvdb); if (item.TryGetProviderId(MetadataProvider.Tvdb, out var tvdb))
if (!string.IsNullOrEmpty(tvdb))
{ {
writer.WriteElementString("id", tvdb); writer.WriteElementString("id", tvdb);

View File

@ -344,15 +344,12 @@ public class RecordingsMetadataManager
await writer.WriteElementStringAsync(null, "credits", null, person).ConfigureAwait(false); await writer.WriteElementStringAsync(null, "credits", null, person).ConfigureAwait(false);
} }
var tmdbCollection = item.GetProviderId(MetadataProvider.TmdbCollection); if (item.TryGetProviderId(MetadataProvider.TmdbCollection, out var tmdbCollection))
if (!string.IsNullOrEmpty(tmdbCollection))
{ {
await writer.WriteElementStringAsync(null, "collectionnumber", null, tmdbCollection).ConfigureAwait(false); await writer.WriteElementStringAsync(null, "collectionnumber", null, tmdbCollection).ConfigureAwait(false);
} }
var imdb = item.GetProviderId(MetadataProvider.Imdb); if (item.TryGetProviderId(MetadataProvider.Imdb, out var imdb))
if (!string.IsNullOrEmpty(imdb))
{ {
if (!isSeriesEpisode) if (!isSeriesEpisode)
{ {
@ -365,8 +362,7 @@ public class RecordingsMetadataManager
lockData = false; lockData = false;
} }
var tvdb = item.GetProviderId(MetadataProvider.Tvdb); if (item.TryGetProviderId(MetadataProvider.Tvdb, out var tvdb))
if (!string.IsNullOrEmpty(tvdb))
{ {
await writer.WriteElementStringAsync(null, "tvdbid", null, tvdb).ConfigureAwait(false); await writer.WriteElementStringAsync(null, "tvdbid", null, tvdb).ConfigureAwait(false);
@ -374,8 +370,7 @@ public class RecordingsMetadataManager
lockData = false; lockData = false;
} }
var tmdb = item.GetProviderId(MetadataProvider.Tmdb); if (item.TryGetProviderId(MetadataProvider.Tmdb, out var tmdb))
if (!string.IsNullOrEmpty(tmdb))
{ {
await writer.WriteElementStringAsync(null, "tmdbid", null, tmdb).ConfigureAwait(false); await writer.WriteElementStringAsync(null, "tmdbid", null, tmdb).ConfigureAwait(false);