aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs16
-rw-r--r--MediaBrowser.Providers/TV/TheMovieDb/MovieDbProviderBase.cs14
-rw-r--r--MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs33
3 files changed, 59 insertions, 4 deletions
diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs
index 9bab3d380..bc9842b73 100644
--- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs
+++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbEpisodeProvider.cs
@@ -114,6 +114,22 @@ namespace MediaBrowser.Providers.TV
item.CommunityRating = (float)response.vote_average;
item.VoteCount = response.vote_count;
+ if (response.videos != null && response.videos.results != null)
+ {
+ foreach (var video in response.videos.results)
+ {
+ if (video.type.Equals("trailer", System.StringComparison.OrdinalIgnoreCase)
+ || video.type.Equals("clip", System.StringComparison.OrdinalIgnoreCase))
+ {
+ if (video.site.Equals("youtube", System.StringComparison.OrdinalIgnoreCase))
+ {
+ var videoUrl = string.Format("http://www.youtube.com/watch?v={0}", video.key);
+ item.AddTrailerUrl(videoUrl, true);
+ }
+ }
+ }
+ }
+
result.ResetPeople();
var credits = response.credits;
diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbProviderBase.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbProviderBase.cs
index 36800202f..a6df245b0 100644
--- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbProviderBase.cs
+++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbProviderBase.cs
@@ -210,7 +210,19 @@ namespace MediaBrowser.Providers.TV
public class Videos
{
- public List<object> results { get; set; }
+ public List<Video> results { get; set; }
+ }
+
+ public class Video
+ {
+ public string id { get; set; }
+ public string iso_639_1 { get; set; }
+ public string iso_3166_1 { get; set; }
+ public string key { get; set; }
+ public string name { get; set; }
+ public string site { get; set; }
+ public string size { get; set; }
+ public string type { get; set; }
}
public class RootObject
diff --git a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs
index 4a20418bb..3245a2c85 100644
--- a/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs
+++ b/MediaBrowser.Providers/TV/TheMovieDb/MovieDbSeriesProvider.cs
@@ -168,7 +168,7 @@ namespace MediaBrowser.Providers.TV
{
cancellationToken.ThrowIfCancellationRequested();
- result.Item = await FetchMovieData(tmdbId, info.MetadataLanguage, info.MetadataCountryCode, cancellationToken).ConfigureAwait(false);
+ result.Item = await FetchSeriesData(tmdbId, info.MetadataLanguage, info.MetadataCountryCode, cancellationToken).ConfigureAwait(false);
result.HasMetadata = result.Item != null;
}
@@ -176,7 +176,7 @@ namespace MediaBrowser.Providers.TV
return result;
}
- private async Task<Series> FetchMovieData(string tmdbId, string language, string preferredCountryCode, CancellationToken cancellationToken)
+ private async Task<Series> FetchSeriesData(string tmdbId, string language, string preferredCountryCode, CancellationToken cancellationToken)
{
string dataFilePath = null;
RootObject seriesInfo = null;
@@ -285,6 +285,21 @@ namespace MediaBrowser.Providers.TV
series.OfficialRating = minimumRelease.rating;
}
+ if (seriesInfo.videos != null && seriesInfo.videos.results != null)
+ {
+ foreach (var video in seriesInfo.videos.results)
+ {
+ if (video.type.Equals("trailer", System.StringComparison.OrdinalIgnoreCase)
+ || video.type.Equals("clip", System.StringComparison.OrdinalIgnoreCase))
+ {
+ if (video.site.Equals("youtube", System.StringComparison.OrdinalIgnoreCase))
+ {
+ var videoUrl = string.Format("http://www.youtube.com/watch?v={0}", video.key);
+ series.AddTrailerUrl(videoUrl, true);
+ }
+ }
+ }
+ }
}
internal static string GetSeriesDataPath(IApplicationPaths appPaths, string tmdbId)
@@ -555,7 +570,19 @@ namespace MediaBrowser.Providers.TV
public class Videos
{
- public List<object> results { get; set; }
+ public List<Video> results { get; set; }
+ }
+
+ public class Video
+ {
+ public string id { get; set; }
+ public string iso_639_1 { get; set; }
+ public string iso_3166_1 { get; set; }
+ public string key { get; set; }
+ public string name { get; set; }
+ public string site { get; set; }
+ public string size { get; set; }
+ public string type { get; set; }
}
public class ContentRating