diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-08-02 13:31:08 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2015-08-02 13:31:08 -0400 |
| commit | 6d13cec38ed243a8bc133c52a167e23eac01aae6 (patch) | |
| tree | 96228453c36e050246cf80664625fa18a06b0eeb /MediaBrowser.XbmcMetadata | |
| parent | edecae6ed5bcd7159ac2ba2c12d8d38824915129 (diff) | |
update metadata parsing
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
12 files changed, 44 insertions, 69 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs index d66d7ff19a..53aa390edf 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs @@ -47,7 +47,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers /// <param name="cancellationToken">The cancellation token.</param> /// <exception cref="System.ArgumentNullException"> /// </exception> - public void Fetch(LocalMetadataResult<T> item, string metadataFile, CancellationToken cancellationToken) + public void Fetch(MetadataResult<T> item, string metadataFile, CancellationToken cancellationToken) { if (item == null) { @@ -82,7 +82,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers /// <param name="metadataFile">The metadata file.</param> /// <param name="settings">The settings.</param> /// <param name="cancellationToken">The cancellation token.</param> - private void Fetch(LocalMetadataResult<T> item, string metadataFile, XmlReaderSettings settings, CancellationToken cancellationToken) + private void Fetch(MetadataResult<T> item, string metadataFile, XmlReaderSettings settings, CancellationToken cancellationToken) { item.ResetPeople(); @@ -184,7 +184,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers // http://www.themoviedb.org/movie/36557 } - protected virtual void FetchDataFromXmlNode(XmlReader reader, LocalMetadataResult<T> itemResult) + protected virtual void FetchDataFromXmlNode(XmlReader reader, MetadataResult<T> itemResult) { var item = itemResult.Item; @@ -927,17 +927,14 @@ namespace MediaBrowser.XbmcMetadata.Parsers { var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) + if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId)) { bool parsedValue; if (bool.TryParse(val, out parsedValue)) { - if (!string.IsNullOrWhiteSpace(userDataUserId)) - { - var userData = GetOrAdd(itemResult.UserDataLIst, userDataUserId); + var userData = GetOrAdd(itemResult, userDataUserId); - userData.Played = parsedValue; - } + userData.Played = parsedValue; } } break; @@ -947,21 +944,18 @@ namespace MediaBrowser.XbmcMetadata.Parsers { var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) + if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId)) { int parsedValue; if (int.TryParse(val, NumberStyles.Integer, _usCulture, out parsedValue)) { - if (!string.IsNullOrWhiteSpace(userDataUserId)) - { - var userData = GetOrAdd(itemResult.UserDataLIst, userDataUserId); + var userData = GetOrAdd(itemResult, userDataUserId); - userData.PlayCount = parsedValue; + userData.PlayCount = parsedValue; - if (parsedValue > 0) - { - userData.Played = true; - } + if (parsedValue > 0) + { + userData.Played = true; } } } @@ -972,17 +966,14 @@ namespace MediaBrowser.XbmcMetadata.Parsers { var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) + if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId)) { DateTime parsedValue; if (DateTime.TryParseExact(val, "yyyy-MM-dd HH:mm:ss", _usCulture, DateTimeStyles.None, out parsedValue)) { - if (!string.IsNullOrWhiteSpace(userDataUserId)) - { - var userData = GetOrAdd(itemResult.UserDataLIst, userDataUserId); + var userData = GetOrAdd(itemResult, userDataUserId); - userData.LastPlayedDate = parsedValue; - } + userData.LastPlayedDate = parsedValue; } } break; @@ -994,7 +985,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers { if (!string.IsNullOrWhiteSpace(userDataUserId)) { - var userData = GetOrAdd(itemResult.UserDataLIst, userDataUserId); + var userData = GetOrAdd(itemResult, userDataUserId); FetchFromResumeNode(subtree, item, userData); } @@ -1006,17 +997,14 @@ namespace MediaBrowser.XbmcMetadata.Parsers { var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) + if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId)) { bool parsedValue; if (bool.TryParse(val, out parsedValue)) { - if (!string.IsNullOrWhiteSpace(userDataUserId)) - { - var userData = GetOrAdd(itemResult.UserDataLIst, userDataUserId); + var userData = GetOrAdd(itemResult, userDataUserId); - userData.IsFavorite = parsedValue; - } + userData.IsFavorite = parsedValue; } } break; @@ -1026,17 +1014,14 @@ namespace MediaBrowser.XbmcMetadata.Parsers { var val = reader.ReadElementContentAsString(); - if (!string.IsNullOrWhiteSpace(val)) + if (!string.IsNullOrWhiteSpace(val) && !string.IsNullOrWhiteSpace(userDataUserId)) { double parsedValue; if (double.TryParse(val, NumberStyles.Any, _usCulture, out parsedValue)) { - if (!string.IsNullOrWhiteSpace(userDataUserId)) - { - var userData = GetOrAdd(itemResult.UserDataLIst, userDataUserId); + var userData = GetOrAdd(itemResult, userDataUserId); - userData.Rating = parsedValue; - } + userData.Rating = parsedValue; } } break; @@ -1048,21 +1033,9 @@ namespace MediaBrowser.XbmcMetadata.Parsers } } - private UserItemData GetOrAdd(List<UserItemData> userDataList, string userId) + private UserItemData GetOrAdd(MetadataResult<T> result, string userId) { - var userData = userDataList.FirstOrDefault(i => string.Equals(userId, i.UserId.ToString("N"), StringComparison.OrdinalIgnoreCase)); - - if (userData == null) - { - userData = new UserItemData() - { - UserId = new Guid(userId) - }; - - userDataList.Add(userData); - } - - return userData; + return result.GetOrAddUserData(userId); } private void FetchFromResumeNode(XmlReader reader, T item, UserItemData userData) diff --git a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs index 355f19de72..6dd70f2988 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs @@ -17,7 +17,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers { } - public void Fetch(LocalMetadataResult<Episode> item, + public void Fetch(MetadataResult<Episode> item, List<LocalImageInfo> images, string metadataFile, CancellationToken cancellationToken) @@ -32,7 +32,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers /// </summary> /// <param name="reader">The reader.</param> /// <param name="itemResult">The item result.</param> - protected override void FetchDataFromXmlNode(XmlReader reader, LocalMetadataResult<Episode> itemResult) + protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Episode> itemResult) { var item = itemResult.Item; diff --git a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs index ab46198755..8d5c2bf20e 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs @@ -28,7 +28,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers /// </summary> /// <param name="reader">The reader.</param> /// <param name="itemResult">The item result.</param> - protected override void FetchDataFromXmlNode(XmlReader reader, LocalMetadataResult<Video> itemResult) + protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Video> itemResult) { var item = itemResult.Item; diff --git a/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs index c80684c41d..1164040fd5 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs @@ -18,7 +18,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers /// </summary> /// <param name="reader">The reader.</param> /// <param name="itemResult">The item result.</param> - protected override void FetchDataFromXmlNode(XmlReader reader, LocalMetadataResult<Season> itemResult) + protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Season> itemResult) { var item = itemResult.Item; diff --git a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs index 5025f4d187..03dba56e03 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs @@ -1,12 +1,10 @@ using MediaBrowser.Common.Configuration; -using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; using System; -using System.Collections.Generic; using System.Xml; namespace MediaBrowser.XbmcMetadata.Parsers @@ -22,7 +20,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers /// </summary> /// <param name="reader">The reader.</param> /// <param name="itemResult">The item result.</param> - protected override void FetchDataFromXmlNode(XmlReader reader, LocalMetadataResult<Series> itemResult) + protected override void FetchDataFromXmlNode(XmlReader reader, MetadataResult<Series> itemResult) { var item = itemResult.Item; diff --git a/MediaBrowser.XbmcMetadata/Providers/AlbumNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/AlbumNfoProvider.cs index ac76db7711..f6b78f3425 100644 --- a/MediaBrowser.XbmcMetadata/Providers/AlbumNfoProvider.cs +++ b/MediaBrowser.XbmcMetadata/Providers/AlbumNfoProvider.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.XbmcMetadata.Providers _config = config; } - protected override void Fetch(LocalMetadataResult<MusicAlbum> result, string path, CancellationToken cancellationToken) + protected override void Fetch(MetadataResult<MusicAlbum> result, string path, CancellationToken cancellationToken) { new BaseNfoParser<MusicAlbum>(_logger, _config).Fetch(result, path, cancellationToken); } diff --git a/MediaBrowser.XbmcMetadata/Providers/ArtistNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/ArtistNfoProvider.cs index 8a958c3a69..64cbfe486f 100644 --- a/MediaBrowser.XbmcMetadata/Providers/ArtistNfoProvider.cs +++ b/MediaBrowser.XbmcMetadata/Providers/ArtistNfoProvider.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.XbmcMetadata.Providers _config = config; } - protected override void Fetch(LocalMetadataResult<MusicArtist> result, string path, CancellationToken cancellationToken) + protected override void Fetch(MetadataResult<MusicArtist> result, string path, CancellationToken cancellationToken) { new BaseNfoParser<MusicArtist>(_logger, _config).Fetch(result, path, cancellationToken); } diff --git a/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs index 1e82dfce77..d7815dfb7e 100644 --- a/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs +++ b/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs @@ -14,11 +14,11 @@ namespace MediaBrowser.XbmcMetadata.Providers { protected IFileSystem FileSystem; - public async Task<LocalMetadataResult<T>> GetMetadata(ItemInfo info, + public async Task<MetadataResult<T>> GetMetadata(ItemInfo info, IDirectoryService directoryService, CancellationToken cancellationToken) { - var result = new LocalMetadataResult<T>(); + var result = new MetadataResult<T>(); var file = GetXmlFile(info, directoryService); @@ -48,7 +48,7 @@ namespace MediaBrowser.XbmcMetadata.Providers return result; } - protected abstract void Fetch(LocalMetadataResult<T> result, string path, CancellationToken cancellationToken); + protected abstract void Fetch(MetadataResult<T> result, string path, CancellationToken cancellationToken); protected BaseNfoProvider(IFileSystem fileSystem) { diff --git a/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs index 79315cbf3a..fa9ef7797a 100644 --- a/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs +++ b/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs @@ -24,9 +24,9 @@ namespace MediaBrowser.XbmcMetadata.Providers _config = config; } - protected override void Fetch(LocalMetadataResult<T> result, string path, CancellationToken cancellationToken) + protected override void Fetch(MetadataResult<T> result, string path, CancellationToken cancellationToken) { - var tmpItem = new LocalMetadataResult<Video> + var tmpItem = new MetadataResult<Video> { Item = result.Item }; @@ -34,7 +34,11 @@ namespace MediaBrowser.XbmcMetadata.Providers result.Item = (T)tmpItem.Item; result.People = tmpItem.People; - result.UserDataLIst = tmpItem.UserDataLIst; + + if (tmpItem.UserDataList != null) + { + result.UserDataList = tmpItem.UserDataList; + } } protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService) diff --git a/MediaBrowser.XbmcMetadata/Providers/EpisodeNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/EpisodeNfoProvider.cs index 2b5cfe9a33..b7bfdeeb02 100644 --- a/MediaBrowser.XbmcMetadata/Providers/EpisodeNfoProvider.cs +++ b/MediaBrowser.XbmcMetadata/Providers/EpisodeNfoProvider.cs @@ -23,7 +23,7 @@ namespace MediaBrowser.XbmcMetadata.Providers _config = config; } - protected override void Fetch(LocalMetadataResult<Episode> result, string path, CancellationToken cancellationToken) + protected override void Fetch(MetadataResult<Episode> result, string path, CancellationToken cancellationToken) { var images = new List<LocalImageInfo>(); diff --git a/MediaBrowser.XbmcMetadata/Providers/SeasonNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/SeasonNfoProvider.cs index 85c2d43052..ec543ee0cd 100644 --- a/MediaBrowser.XbmcMetadata/Providers/SeasonNfoProvider.cs +++ b/MediaBrowser.XbmcMetadata/Providers/SeasonNfoProvider.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.XbmcMetadata.Providers _config = config; } - protected override void Fetch(LocalMetadataResult<Season> result, string path, CancellationToken cancellationToken) + protected override void Fetch(MetadataResult<Season> result, string path, CancellationToken cancellationToken) { new SeasonNfoParser(_logger, _config).Fetch(result, path, cancellationToken); } diff --git a/MediaBrowser.XbmcMetadata/Providers/SeriesNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/SeriesNfoProvider.cs index e2ac866efc..d9128821c4 100644 --- a/MediaBrowser.XbmcMetadata/Providers/SeriesNfoProvider.cs +++ b/MediaBrowser.XbmcMetadata/Providers/SeriesNfoProvider.cs @@ -21,7 +21,7 @@ namespace MediaBrowser.XbmcMetadata.Providers _config = config; } - protected override void Fetch(LocalMetadataResult<Series> result, string path, CancellationToken cancellationToken) + protected override void Fetch(MetadataResult<Series> result, string path, CancellationToken cancellationToken) { new SeriesNfoParser(_logger, _config).Fetch(result, path, cancellationToken); } |
