diff options
| -rw-r--r-- | MediaBrowser.Controller/Dto/DtoBuilder.cs | 4 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 24 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/BaseItemXmlParser.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj | 3 | ||||
| -rw-r--r-- | MediaBrowser.Model/Dto/BaseItemDto.cs | 12 | ||||
| -rw-r--r-- | MediaBrowser.Model/Entities/MediaUrl.cs | 11 | ||||
| -rw-r--r-- | MediaBrowser.Model/MediaBrowser.Model.csproj | 1 | ||||
| -rw-r--r-- | MediaBrowser.Model/Querying/ItemFields.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Providers/Movies/MovieDbProvider.cs | 26 |
9 files changed, 61 insertions, 24 deletions
diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index 77559958a..e27b36422 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -399,9 +399,9 @@ namespace MediaBrowser.Controller.Dto dto.Taglines = item.Taglines; } - if (fields.Contains(ItemFields.TrailerUrls)) + if (fields.Contains(ItemFields.RemoteTrailers)) { - dto.TrailerUrls = item.TrailerUrls; + dto.RemoteTrailers = item.RemoteTrailers; } dto.Type = item.GetType().Name; diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index d13e69fce..320225031 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -27,7 +27,7 @@ namespace MediaBrowser.Controller.Entities protected BaseItem() { Genres = new List<string>(); - TrailerUrls = new List<string>(); + RemoteTrailers = new List<MediaUrl>(); Studios = new List<string>(); People = new List<PersonInfo>(); Taglines = new List<string>(); @@ -903,7 +903,7 @@ namespace MediaBrowser.Controller.Entities /// Gets or sets the trailer URL. /// </summary> /// <value>The trailer URL.</value> - public List<string> TrailerUrls { get; set; } + public List<MediaUrl> RemoteTrailers { get; set; } /// <summary> /// Gets or sets the provider ids. @@ -1180,22 +1180,28 @@ namespace MediaBrowser.Controller.Entities /// Adds a TrailerUrl to the item /// </summary> /// <param name="url">The URL.</param> - /// <exception cref="System.ArgumentNullException"></exception> - public void AddTrailerUrl(string url) + /// <param name="isDirectLink">if set to <c>true</c> [is direct link].</param> + /// <exception cref="System.ArgumentNullException">url</exception> + public void AddTrailerUrl(string url, bool isDirectLink) { if (string.IsNullOrWhiteSpace(url)) { throw new ArgumentNullException("url"); } - if (TrailerUrls == null) + var current = RemoteTrailers.FirstOrDefault(i => string.Equals(i.Url, url, StringComparison.OrdinalIgnoreCase)); + + if (current != null) { - TrailerUrls = new List<string>(); + current.IsDirectLink = isDirectLink; } - - if (!TrailerUrls.Contains(url, StringComparer.OrdinalIgnoreCase)) + else { - TrailerUrls.Add(url); + RemoteTrailers.Add(new MediaUrl + { + Url = url, + IsDirectLink = isDirectLink + }); } } diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs index cb2bf6877..1c7e667a2 100644 --- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs +++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs @@ -406,7 +406,7 @@ namespace MediaBrowser.Controller.Providers if (!string.IsNullOrWhiteSpace(val)) { - //item.AddTrailerUrl(val); + item.AddTrailerUrl(val, false); } break; } diff --git a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj index 7061c4277..6bce2a833 100644 --- a/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj +++ b/MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj @@ -133,6 +133,9 @@ <Compile Include="..\MediaBrowser.Model\Entities\MediaType.cs"> <Link>Entities\MediaType.cs</Link> </Compile> + <Compile Include="..\MediaBrowser.Model\Entities\MediaUrl.cs"> + <Link>Entities\MediaUrl.cs</Link> + </Compile> <Compile Include="..\MediaBrowser.Model\Entities\MetadataFields.cs"> <Link>Entities\MetadataFields.cs</Link> </Compile> diff --git a/MediaBrowser.Model/Dto/BaseItemDto.cs b/MediaBrowser.Model/Dto/BaseItemDto.cs index f5398ddd5..149029b59 100644 --- a/MediaBrowser.Model/Dto/BaseItemDto.cs +++ b/MediaBrowser.Model/Dto/BaseItemDto.cs @@ -160,7 +160,7 @@ namespace MediaBrowser.Model.Dto /// Gets or sets the trailer urls. /// </summary> /// <value>The trailer urls.</value> - public List<string> TrailerUrls { get; set; } + public List<MediaUrl> RemoteTrailers { get; set; } /// <summary> /// Gets or sets the provider ids. @@ -619,16 +619,6 @@ namespace MediaBrowser.Model.Dto /// </summary> /// <value><c>true</c> if this instance is video; otherwise, <c>false</c>.</value> [IgnoreDataMember] - public bool HasTrailer - { - get { return LocalTrailerCount > 0 || (TrailerUrls != null && TrailerUrls.Count > 0); } - } - - /// <summary> - /// Gets a value indicating whether this instance is video. - /// </summary> - /// <value><c>true</c> if this instance is video; otherwise, <c>false</c>.</value> - [IgnoreDataMember] public bool IsVideo { get { return string.Equals(MediaType, Entities.MediaType.Video, StringComparison.OrdinalIgnoreCase); } diff --git a/MediaBrowser.Model/Entities/MediaUrl.cs b/MediaBrowser.Model/Entities/MediaUrl.cs new file mode 100644 index 000000000..b99879650 --- /dev/null +++ b/MediaBrowser.Model/Entities/MediaUrl.cs @@ -0,0 +1,11 @@ + +namespace MediaBrowser.Model.Entities +{ + public class MediaUrl + { + public string Url { get; set; } + public string Name { get; set; } + public bool? IsHD { get; set; } + public bool IsDirectLink { get; set; } + } +} diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj index 06dfa776d..6b1c728e2 100644 --- a/MediaBrowser.Model/MediaBrowser.Model.csproj +++ b/MediaBrowser.Model/MediaBrowser.Model.csproj @@ -52,6 +52,7 @@ <Compile Include="Dto\ItemCounts.cs" /> <Compile Include="Dto\StudioDto.cs" /> <Compile Include="Entities\ItemReview.cs" /> + <Compile Include="Entities\MediaUrl.cs" /> <Compile Include="Entities\MetadataFields.cs" /> <Compile Include="Entities\Video3DFormat.cs" /> <Compile Include="Net\WebSocketMessage.cs" /> diff --git a/MediaBrowser.Model/Querying/ItemFields.cs b/MediaBrowser.Model/Querying/ItemFields.cs index a8a58d6a6..b6f452d7c 100644 --- a/MediaBrowser.Model/Querying/ItemFields.cs +++ b/MediaBrowser.Model/Querying/ItemFields.cs @@ -154,7 +154,7 @@ namespace MediaBrowser.Model.Querying /// <summary> /// The trailer url of the item /// </summary> - TrailerUrls, + RemoteTrailers, /// <summary> /// The user data of the item diff --git a/MediaBrowser.Providers/Movies/MovieDbProvider.cs b/MediaBrowser.Providers/Movies/MovieDbProvider.cs index 1ebae9418..7a22a4d19 100644 --- a/MediaBrowser.Providers/Movies/MovieDbProvider.cs +++ b/MediaBrowser.Providers/Movies/MovieDbProvider.cs @@ -793,6 +793,19 @@ namespace MediaBrowser.Providers.Movies { movie.Tags = movieData.keywords.keywords.Select(i => i.name).ToList(); } + + if (movieData.trailers != null && movieData.trailers.youtube != null && + movieData.trailers.youtube.Count > 0) + { + movie.RemoteTrailers = movieData.trailers.youtube.Select(i => new MediaUrl + { + Url = string.Format("http://www.youtube.com/watch?{0}", i.source), + IsDirectLink = false, + Name = i.name, + IsHD = string.Equals("hd", i.size, StringComparison.OrdinalIgnoreCase) + + }).ToList(); + } } } @@ -1179,6 +1192,19 @@ namespace MediaBrowser.Providers.Movies public Casts casts { get; set; } public Releases releases { get; set; } public Keywords keywords { get; set; } + public Trailers trailers { get; set; } + } + + public class Trailers + { + public List<Youtube> youtube { get; set; } + } + + public class Youtube + { + public string name { get; set; } + public string size { get; set; } + public string source { get; set; } } public class TmdbImageSettings |
