Przeglądaj źródła

Add type to externalids to distinguish them in the UI

Luke Foust 5 lat temu
rodzic
commit
9bdb99fe92

+ 19 - 0
MediaBrowser.Controller/Providers/IExternalId.cs

@@ -8,8 +8,27 @@ namespace MediaBrowser.Controller.Providers
 
 
         string Key { get; }
         string Key { get; }
 
 
+        ExternalIdType Type { get; }
+
         string UrlFormatString { get; }
         string UrlFormatString { get; }
 
 
         bool Supports(IHasProviderIds item);
         bool Supports(IHasProviderIds item);
     }
     }
+
+    public enum ExternalIdType
+    {
+        None,
+        Album,
+        AlbumArtist,
+        Artist,
+        BoxSet,
+        Episode,
+        Movie,
+        OtherArtist,
+        Person,
+        ReleaseGroup,
+        Season,
+        Series,
+        Track
+    }
 }
 }

+ 6 - 0
MediaBrowser.Model/Providers/ExternalIdInfo.cs

@@ -16,6 +16,12 @@ namespace MediaBrowser.Model.Providers
         /// <value>The key.</value>
         /// <value>The key.</value>
         public string Key { get; set; }
         public string Key { get; set; }
 
 
+        /// <summary>
+        /// Gets or sets the type.
+        /// </summary>
+        /// <value>The type.</value>
+        public string Type { get; set; }
+
         /// <summary>
         /// <summary>
         /// Gets or sets the URL format string.
         /// Gets or sets the URL format string.
         /// </summary>
         /// </summary>

+ 1 - 0
MediaBrowser.Providers/Manager/ProviderManager.cs

@@ -910,6 +910,7 @@ namespace MediaBrowser.Providers.Manager
                 {
                 {
                     Name = i.Name,
                     Name = i.Name,
                     Key = i.Key,
                     Key = i.Key,
+                    Type = i.Type == ExternalIdType.None ? null : i.Type.ToString(),
                     UrlFormatString = i.UrlFormatString
                     UrlFormatString = i.UrlFormatString
 
 
                 });
                 });

+ 6 - 0
MediaBrowser.Providers/Movies/MovieExternalIds.cs

@@ -15,6 +15,9 @@ namespace MediaBrowser.Providers.Movies
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Imdb.ToString();
         public string Key => MetadataProviders.Imdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.None;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => "https://www.imdb.com/title/{0}";
         public string UrlFormatString => "https://www.imdb.com/title/{0}";
 
 
@@ -39,6 +42,9 @@ namespace MediaBrowser.Providers.Movies
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Imdb.ToString();
         public string Key => MetadataProviders.Imdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Person;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => "https://www.imdb.com/name/{0}";
         public string UrlFormatString => "https://www.imdb.com/name/{0}";
 
 

+ 3 - 0
MediaBrowser.Providers/Music/MusicExternalIds.cs

@@ -12,6 +12,9 @@ namespace MediaBrowser.Providers.Music
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => "IMVDb";
         public string Key => "IMVDb";
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.None;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => null;
         public string UrlFormatString => null;
 
 

+ 14 - 2
MediaBrowser.Providers/Plugins/AudioDb/ExternalIds.cs

@@ -12,6 +12,9 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.AudioDbAlbum.ToString();
         public string Key => MetadataProviders.AudioDbAlbum.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.None;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => "https://www.theaudiodb.com/album/{0}";
         public string UrlFormatString => "https://www.theaudiodb.com/album/{0}";
 
 
@@ -22,11 +25,14 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
     public class AudioDbOtherAlbumExternalId : IExternalId
     public class AudioDbOtherAlbumExternalId : IExternalId
     {
     {
         /// <inheritdoc />
         /// <inheritdoc />
-        public string Name => "TheAudioDb Album";
+        public string Name => "TheAudioDb";
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.AudioDbAlbum.ToString();
         public string Key => MetadataProviders.AudioDbAlbum.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Album;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => "https://www.theaudiodb.com/album/{0}";
         public string UrlFormatString => "https://www.theaudiodb.com/album/{0}";
 
 
@@ -42,6 +48,9 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.AudioDbArtist.ToString();
         public string Key => MetadataProviders.AudioDbArtist.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Artist;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => "https://www.theaudiodb.com/artist/{0}";
         public string UrlFormatString => "https://www.theaudiodb.com/artist/{0}";
 
 
@@ -52,11 +61,14 @@ namespace MediaBrowser.Providers.Plugins.AudioDb
     public class AudioDbOtherArtistExternalId : IExternalId
     public class AudioDbOtherArtistExternalId : IExternalId
     {
     {
         /// <inheritdoc />
         /// <inheritdoc />
-        public string Name => "TheAudioDb Artist";
+        public string Name => "TheAudioDb";
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.AudioDbArtist.ToString();
         public string Key => MetadataProviders.AudioDbArtist.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.OtherArtist;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => "https://www.theaudiodb.com/artist/{0}";
         public string UrlFormatString => "https://www.theaudiodb.com/artist/{0}";
 
 

+ 23 - 5
MediaBrowser.Providers/Plugins/MusicBrainz/ExternalIds.cs

@@ -8,11 +8,14 @@ namespace MediaBrowser.Providers.Music
     public class MusicBrainzReleaseGroupExternalId : IExternalId
     public class MusicBrainzReleaseGroupExternalId : IExternalId
     {
     {
         /// <inheritdoc />
         /// <inheritdoc />
-        public string Name => "MusicBrainz Release Group";
+        public string Name => "MusicBrainz";
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.MusicBrainzReleaseGroup.ToString();
         public string Key => MetadataProviders.MusicBrainzReleaseGroup.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.ReleaseGroup;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release-group/{0}";
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release-group/{0}";
 
 
@@ -23,11 +26,14 @@ namespace MediaBrowser.Providers.Music
     public class MusicBrainzAlbumArtistExternalId : IExternalId
     public class MusicBrainzAlbumArtistExternalId : IExternalId
     {
     {
         /// <inheritdoc />
         /// <inheritdoc />
-        public string Name => "MusicBrainz Album Artist";
+        public string Name => "MusicBrainz";
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.MusicBrainzAlbumArtist.ToString();
         public string Key => MetadataProviders.MusicBrainzAlbumArtist.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.AlbumArtist;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
 
 
@@ -38,11 +44,14 @@ namespace MediaBrowser.Providers.Music
     public class MusicBrainzAlbumExternalId : IExternalId
     public class MusicBrainzAlbumExternalId : IExternalId
     {
     {
         /// <inheritdoc />
         /// <inheritdoc />
-        public string Name => "MusicBrainz Album";
+        public string Name => "MusicBrainz";
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.MusicBrainzAlbum.ToString();
         public string Key => MetadataProviders.MusicBrainzAlbum.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Album;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release/{0}";
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/release/{0}";
 
 
@@ -58,6 +67,9 @@ namespace MediaBrowser.Providers.Music
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.MusicBrainzArtist.ToString();
         public string Key => MetadataProviders.MusicBrainzArtist.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Artist;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
 
 
@@ -68,12 +80,15 @@ namespace MediaBrowser.Providers.Music
     public class MusicBrainzOtherArtistExternalId : IExternalId
     public class MusicBrainzOtherArtistExternalId : IExternalId
     {
     {
         /// <inheritdoc />
         /// <inheritdoc />
-        public string Name => "MusicBrainz Artist";
+        public string Name => "MusicBrainz";
 
 
         /// <inheritdoc />
         /// <inheritdoc />
 
 
         public string Key => MetadataProviders.MusicBrainzArtist.ToString();
         public string Key => MetadataProviders.MusicBrainzArtist.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.OtherArtist;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/artist/{0}";
 
 
@@ -84,11 +99,14 @@ namespace MediaBrowser.Providers.Music
     public class MusicBrainzTrackId : IExternalId
     public class MusicBrainzTrackId : IExternalId
     {
     {
         /// <inheritdoc />
         /// <inheritdoc />
-        public string Name => "MusicBrainz Track";
+        public string Name => "MusicBrainz";
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.MusicBrainzTrack.ToString();
         public string Key => MetadataProviders.MusicBrainzTrack.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Track;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/track/{0}";
         public string UrlFormatString => Plugin.Instance.Configuration.Server + "/track/{0}";
 
 

+ 12 - 0
MediaBrowser.Providers/TV/TvExternalIds.cs

@@ -13,6 +13,9 @@ namespace MediaBrowser.Providers.TV
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Zap2It.ToString();
         public string Key => MetadataProviders.Zap2It.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.None;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => "http://tvlistings.zap2it.com/overview.html?programSeriesId={0}";
         public string UrlFormatString => "http://tvlistings.zap2it.com/overview.html?programSeriesId={0}";
 
 
@@ -28,6 +31,9 @@ namespace MediaBrowser.Providers.TV
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Tvdb.ToString();
         public string Key => MetadataProviders.Tvdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.None;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => TvdbUtils.TvdbBaseUrl + "?tab=series&id={0}";
         public string UrlFormatString => TvdbUtils.TvdbBaseUrl + "?tab=series&id={0}";
 
 
@@ -44,6 +50,9 @@ namespace MediaBrowser.Providers.TV
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Tvdb.ToString();
         public string Key => MetadataProviders.Tvdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Season;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => null;
         public string UrlFormatString => null;
 
 
@@ -59,6 +68,9 @@ namespace MediaBrowser.Providers.TV
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Tvdb.ToString();
         public string Key => MetadataProviders.Tvdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Episode;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => TvdbUtils.TvdbBaseUrl + "?tab=episode&id={0}";
         public string UrlFormatString => TvdbUtils.TvdbBaseUrl + "?tab=episode&id={0}";
 
 

+ 3 - 0
MediaBrowser.Providers/Tmdb/BoxSets/TmdbBoxSetExternalId.cs

@@ -13,6 +13,9 @@ namespace MediaBrowser.Providers.Tmdb.BoxSets
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.TmdbCollection.ToString();
         public string Key => MetadataProviders.TmdbCollection.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.BoxSet;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "collection/{0}";
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "collection/{0}";
 
 

+ 3 - 0
MediaBrowser.Providers/Tmdb/Movies/TmdbMovieExternalId.cs

@@ -14,6 +14,9 @@ namespace MediaBrowser.Providers.Tmdb.Movies
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Tmdb.ToString();
         public string Key => MetadataProviders.Tmdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Movie;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "movie/{0}";
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "movie/{0}";
 
 

+ 3 - 0
MediaBrowser.Providers/Tmdb/People/TmdbPersonExternalId.cs

@@ -12,6 +12,9 @@ namespace MediaBrowser.Providers.Tmdb.People
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Tmdb.ToString();
         public string Key => MetadataProviders.Tmdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Person;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "person/{0}";
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "person/{0}";
 
 

+ 3 - 0
MediaBrowser.Providers/Tmdb/TV/TmdbSeriesExternalId.cs

@@ -12,6 +12,9 @@ namespace MediaBrowser.Providers.Tmdb.TV
         /// <inheritdoc />
         /// <inheritdoc />
         public string Key => MetadataProviders.Tmdb.ToString();
         public string Key => MetadataProviders.Tmdb.ToString();
 
 
+        /// <inheritdoc />
+        public ExternalIdType Type => ExternalIdType.Series;
+
         /// <inheritdoc />
         /// <inheritdoc />
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "tv/{0}";
         public string UrlFormatString => TmdbUtils.BaseTmdbUrl + "tv/{0}";