aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Dto/DtoBuilder.cs4
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs24
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs2
-rw-r--r--MediaBrowser.Model.net35/MediaBrowser.Model.net35.csproj3
-rw-r--r--MediaBrowser.Model/Dto/BaseItemDto.cs12
-rw-r--r--MediaBrowser.Model/Entities/MediaUrl.cs11
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj1
-rw-r--r--MediaBrowser.Model/Querying/ItemFields.cs2
-rw-r--r--MediaBrowser.Providers/Movies/MovieDbProvider.cs26
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