aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Omdb/OmdbProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Omdb/OmdbProvider.cs')
-rw-r--r--MediaBrowser.Providers/Omdb/OmdbProvider.cs28
1 files changed, 27 insertions, 1 deletions
diff --git a/MediaBrowser.Providers/Omdb/OmdbProvider.cs b/MediaBrowser.Providers/Omdb/OmdbProvider.cs
index 2d6c0e3d7..e55321bb1 100644
--- a/MediaBrowser.Providers/Omdb/OmdbProvider.cs
+++ b/MediaBrowser.Providers/Omdb/OmdbProvider.cs
@@ -1,5 +1,6 @@
using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Serialization;
using System;
using System.Globalization;
@@ -29,6 +30,11 @@ namespace MediaBrowser.Providers.Omdb
public async Task Fetch(BaseItem item, string imdbId, CancellationToken cancellationToken)
{
+ if (string.IsNullOrWhiteSpace(imdbId))
+ {
+ throw new ArgumentNullException("imdbId");
+ }
+
var imdbParam = imdbId.StartsWith("tt", StringComparison.OrdinalIgnoreCase) ? imdbId : "tt" + imdbId;
var url = string.Format("http://www.omdbapi.com/?i={0}&tomatoes=true", imdbParam);
@@ -45,6 +51,20 @@ namespace MediaBrowser.Providers.Omdb
{
var result = _jsonSerializer.DeserializeFromStream<RootObject>(stream);
+ item.Name = result.Title;
+
+ int year;
+
+ if (!string.IsNullOrEmpty(result.Year)
+ && int.TryParse(result.Year, NumberStyles.Number, _usCulture, out year)
+ && year >= 0)
+ {
+ item.ProductionYear = year;
+ }
+
+ item.OfficialRating = result.Rated;
+
+
var hasCriticRating = item as IHasCriticRating;
if (hasCriticRating != null)
{
@@ -91,6 +111,12 @@ namespace MediaBrowser.Providers.Omdb
item.HomePageUrl = result.Website;
}
+ if (!string.IsNullOrWhiteSpace(result.imdbID)
+ && !string.Equals(result.imdbID, "n/a", StringComparison.OrdinalIgnoreCase))
+ {
+ item.SetProviderId(MetadataProviders.Imdb, result.imdbID);
+ }
+
ParseAdditionalMetadata(item, result);
}
}
@@ -148,7 +174,7 @@ namespace MediaBrowser.Providers.Omdb
return string.Equals(lang, "en", StringComparison.OrdinalIgnoreCase);
}
- public class RootObject
+ private class RootObject
{
public string Title { get; set; }
public string Year { get; set; }