diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-06-11 20:19:56 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-06-11 20:19:56 -0400 |
| commit | 0e55f3de58496e867f1744d3e1690cf2d3fc5062 (patch) | |
| tree | 352f8827762d635fe3b3cbe7f968467df023e124 | |
| parent | 9ab7c5b7a026736cbe716aeaf03e6684f839dd29 (diff) | |
support embedded wtv info
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs | 66 |
1 files changed, 64 insertions, 2 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs index 5f24aa1e0..2a9495fd8 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.IO; +using System.Globalization; +using MediaBrowser.Common.IO; using MediaBrowser.Common.MediaInfo; using MediaBrowser.Controller.Configuration; using MediaBrowser.Controller.Entities; @@ -51,7 +52,7 @@ namespace MediaBrowser.Providers.MediaInfo private readonly IIsoManager _isoManager; private readonly ILocalizationManager _localization; - + /// <summary> /// Returns true or false indicating if the provider should refresh when the contents of it's directory changes /// </summary> @@ -232,6 +233,67 @@ namespace MediaBrowser.Providers.MediaInfo } AddExternalSubtitles(video); + + FetchWtvInfo(video, data); + } + + /// <summary> + /// Fetches the WTV info. + /// </summary> + /// <param name="video">The video.</param> + /// <param name="data">The data.</param> + private void FetchWtvInfo(Video video, MediaInfoResult data) + { + if (data.format.tags == null) + { + return; + } + + var genres = GetDictionaryValue(data.format.tags, "genre"); + + if (!string.IsNullOrEmpty(genres)) + { + video.Genres = genres.Split(new[] { ';', '/' }, StringSplitOptions.RemoveEmptyEntries) + .Where(i => !string.IsNullOrWhiteSpace(i)) + .Select(i => i.Trim()) + .ToList(); + } + + var overview = GetDictionaryValue(data.format.tags, "WM/SubTitleDescription"); + + if (!string.IsNullOrWhiteSpace(overview)) + { + video.Overview = overview; + } + + var officialRating = GetDictionaryValue(data.format.tags, "WM/ParentalRating"); + + if (!string.IsNullOrWhiteSpace(officialRating)) + { + video.OfficialRating = officialRating; + } + + var people = GetDictionaryValue(data.format.tags, "WM/MediaCredits"); + + if (!string.IsNullOrEmpty(people)) + { + video.People = people.Split(new[] { ';', '/' }, StringSplitOptions.RemoveEmptyEntries) + .Where(i => !string.IsNullOrWhiteSpace(i)) + .Select(i => new PersonInfo { Name = i.Trim(), Type = PersonType.Actor }) + .ToList(); + } + + var year = GetDictionaryValue(data.format.tags, "WM/OriginalReleaseTime"); + + if (!string.IsNullOrWhiteSpace(year)) + { + int val; + + if (int.TryParse(year, NumberStyles.Integer, UsCulture, out val)) + { + video.ProductionYear = val; + } + } } /// <summary> |
