|
|
|
@ -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>
|
|
|
|
|