From b1713a16cdac471f7921b0fa5706ace6a368e140 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 6 Feb 2014 22:10:13 -0500 Subject: [PATCH] switch to generic lookup type --- .../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 +++- .../Entities/GameSystem.cs | 12 ++- .../{Providers => Entities}/IHasMetadata.cs | 7 +- .../Entities/Movies/BoxSet.cs | 71 ++++++++++++++++- .../Entities/Movies/Movie.cs | 7 +- .../Entities/MusicVideo.cs | 8 +- MediaBrowser.Controller/Entities/Person.cs | 10 ++- .../Entities/TV/Episode.cs | 23 +++++- MediaBrowser.Controller/Entities/TV/Series.cs | 8 +- MediaBrowser.Controller/Entities/Trailer.cs | 10 ++- .../Library/IMetadataSaver.cs | 3 +- .../MediaBrowser.Controller.csproj | 4 +- .../Providers/BaseItemXmlParser.cs | 12 +-- .../Providers/ICustomMetadataProvider.cs | 3 +- .../Providers/IHasChangeMonitor.cs | 1 + .../Providers/ILocalMetadataProvider.cs | 1 + .../Providers/IMetadataProvider.cs | 1 + .../Providers/IMetadataService.cs | 1 + .../Providers/IRemoteMetadataProvider.cs | 14 ++-- .../{ItemId.cs => ItemLookupInfo.cs} | 76 +++++++++++++++++-- .../AdultVideos/AdultVideoMetadataService.cs | 2 +- MediaBrowser.Providers/BaseXmlProvider.cs | 3 +- .../Books/BookMetadataService.cs | 2 +- .../BoxSets/BoxSetMetadataService.cs | 2 +- .../BoxSets/MovieDbBoxSetProvider.cs | 6 +- .../Folders/FolderMetadataService.cs | 2 +- .../GameGenres/GameGenreMetadataService.cs | 2 +- .../Games/GameMetadataService.cs | 11 +-- .../Games/GameSystemMetadataService.cs | 11 +-- .../Genres/GenreMetadataService.cs | 2 +- .../LiveTv/ChannelMetadataService.cs | 2 +- .../LiveTv/ProgramMetadataService.cs | 2 +- .../Manager/MetadataService.cs | 35 ++------- .../MediaBrowser.Providers.csproj | 2 + .../Movies/GenericMovieDbInfo.cs | 3 +- .../Movies/MovieDbProvider.cs | 8 +- .../Movies/MovieDbSearch.cs | 6 +- .../Movies/MovieDbTrailerProvider.cs | 26 +++++++ .../Movies/MovieMetadataService.cs | 2 +- .../Movies/TrailerMetadataService.cs | 2 +- .../Music/AlbumMetadataService.cs | 19 +---- .../Music/ArtistMetadataService.cs | 2 +- .../Music/AudioMetadataService.cs | 2 +- .../Music/LastfmAlbumProvider.cs | 8 +- .../Music/LastfmArtistProvider.cs | 4 +- .../Music/MovieDbMusicVideoProvider.cs | 27 +++++++ .../Music/MusicBrainzAlbumProvider.cs | 6 +- .../Music/MusicBrainzArtistProvider.cs | 6 +- .../Music/MusicVideoMetadataService.cs | 2 +- .../MusicGenres/MusicGenreMetadataService.cs | 2 +- .../People/MovieDbPersonProvider.cs | 6 +- .../People/PersonMetadataService.cs | 2 +- .../Savers/AlbumXmlSaver.cs | 1 + .../Savers/ChannelXmlSaver.cs | 3 +- .../Savers/EpisodeXmlSaver.cs | 1 + .../Savers/SeasonXmlSaver.cs | 1 + .../Savers/SeriesXmlSaver.cs | 1 + .../Studios/StudioMetadataService.cs | 2 +- .../TV/EpisodeMetadataService.cs | 22 +----- .../TV/SeasonMetadataService.cs | 2 +- .../TV/SeriesMetadataService.cs | 3 +- .../TV/TvdbEpisodeProvider.cs | 9 ++- .../TV/TvdbSeriesProvider.cs | 5 +- .../Users/UserMetadataService.cs | 2 +- .../Videos/VideoMetadataService.cs | 2 +- .../Years/YearMetadataService.cs | 2 +- Nuget/MediaBrowser.Common.Internal.nuspec | 4 +- Nuget/MediaBrowser.Common.nuspec | 2 +- Nuget/MediaBrowser.Server.Core.nuspec | 4 +- 74 files changed, 458 insertions(+), 202 deletions(-) rename MediaBrowser.Controller/{Providers => Entities}/IHasMetadata.cs (93%) rename MediaBrowser.Controller/Providers/{ItemId.cs => ItemLookupInfo.cs} (63%) create mode 100644 MediaBrowser.Providers/Movies/MovieDbTrailerProvider.cs create mode 100644 MediaBrowser.Providers/Music/MovieDbMusicVideoProvider.cs 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