From b1713a16cdac471f7921b0fa5706ace6a368e140 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 6 Feb 2014 22:10:13 -0500 Subject: switch to generic lookup type --- MediaBrowser.Controller/Entities/Audio/Audio.cs | 16 ++- .../Entities/Audio/MusicAlbum.cs | 27 +++- .../Entities/Audio/MusicArtist.cs | 13 +- MediaBrowser.Controller/Entities/BaseItem.cs | 25 +++- MediaBrowser.Controller/Entities/Book.cs | 10 +- MediaBrowser.Controller/Entities/Game.cs | 14 +- MediaBrowser.Controller/Entities/GameSystem.cs | 12 +- MediaBrowser.Controller/Entities/IHasMetadata.cs | 48 +++++++ MediaBrowser.Controller/Entities/Movies/BoxSet.cs | 71 +++++++++- MediaBrowser.Controller/Entities/Movies/Movie.cs | 7 +- MediaBrowser.Controller/Entities/MusicVideo.cs | 8 +- MediaBrowser.Controller/Entities/Person.cs | 10 +- MediaBrowser.Controller/Entities/TV/Episode.cs | 23 +++- MediaBrowser.Controller/Entities/TV/Series.cs | 8 +- MediaBrowser.Controller/Entities/Trailer.cs | 10 +- MediaBrowser.Controller/Library/IMetadataSaver.cs | 3 +- .../MediaBrowser.Controller.csproj | 4 +- .../Providers/BaseItemXmlParser.cs | 12 +- .../Providers/ICustomMetadataProvider.cs | 3 +- .../Providers/IHasChangeMonitor.cs | 1 + MediaBrowser.Controller/Providers/IHasMetadata.cs | 49 ------- .../Providers/ILocalMetadataProvider.cs | 1 + .../Providers/IMetadataProvider.cs | 1 + .../Providers/IMetadataService.cs | 1 + .../Providers/IRemoteMetadataProvider.cs | 14 +- MediaBrowser.Controller/Providers/ItemId.cs | 92 ------------- .../Providers/ItemLookupInfo.cs | 152 +++++++++++++++++++++ 27 files changed, 449 insertions(+), 186 deletions(-) create mode 100644 MediaBrowser.Controller/Entities/IHasMetadata.cs delete mode 100644 MediaBrowser.Controller/Providers/IHasMetadata.cs delete mode 100644 MediaBrowser.Controller/Providers/ItemId.cs create mode 100644 MediaBrowser.Controller/Providers/ItemLookupInfo.cs (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Entities/Audio/Audio.cs b/MediaBrowser.Controller/Entities/Audio/Audio.cs index 6f4a0c4d2c..139d8c6fb5 100644 --- a/MediaBrowser.Controller/Entities/Audio/Audio.cs +++ b/MediaBrowser.Controller/Entities/Audio/Audio.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Configuration; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Configuration; using System; using System.Collections.Generic; using System.Linq; @@ -9,7 +10,7 @@ namespace MediaBrowser.Controller.Entities.Audio /// /// Class Audio /// - public class Audio : BaseItem, IHasMediaStreams, IHasAlbumArtist, IHasArtist, IHasMusicGenres + public class Audio : BaseItem, IHasMediaStreams, IHasAlbumArtist, IHasArtist, IHasMusicGenres, IHasLookupInfo { public Audio() { @@ -127,5 +128,16 @@ namespace MediaBrowser.Controller.Entities.Audio { return config.BlockUnratedMusic; } + + public SongInfo GetLookupInfo() + { + var info = GetItemLookupInfo(); + + info.AlbumArtist = AlbumArtist; + info.Album = Album; + info.Artists = Artists; + + return info; + } } } diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs index b3bf0d2b66..6dda902c9e 100644 --- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs +++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Model.Configuration; +using MediaBrowser.Controller.Providers; +using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using System; using System.Collections.Generic; @@ -10,10 +11,10 @@ namespace MediaBrowser.Controller.Entities.Audio /// /// Class MusicAlbum /// - public class MusicAlbum : Folder, IHasAlbumArtist, IHasArtist, IHasMusicGenres, IHasTags + public class MusicAlbum : Folder, IHasAlbumArtist, IHasArtist, IHasMusicGenres, IHasTags, IHasLookupInfo { public List SoundtrackIds { get; set; } - + public MusicAlbum() { Artists = new List(); @@ -112,6 +113,26 @@ namespace MediaBrowser.Controller.Entities.Audio { return config.BlockUnratedMusic; } + + public AlbumInfo GetLookupInfo() + { + var id = GetItemLookupInfo(); + + id.AlbumArtist = AlbumArtist; + + var artist = Parents.OfType().FirstOrDefault(); + + if (artist != null) + { + id.ArtistProviderIds = artist.ProviderIds; + } + + id.SongInfos = RecursiveChildren.OfType