aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs2
-rw-r--r--MediaBrowser.Controller/Providers/LocalMetadataResult.cs18
-rw-r--r--MediaBrowser.Controller/Providers/MetadataResult.cs32
-rw-r--r--MediaBrowser.LocalMetadata/BaseXmlProvider.cs6
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs8
-rw-r--r--MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/EpisodeXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/FolderXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/GameSystemXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/GameXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/MovieXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/MusicVideoXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/PersonXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/SeasonXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/SeriesXmlProvider.cs2
-rw-r--r--MediaBrowser.LocalMetadata/Providers/VideoXmlProvider.cs2
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs5
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs75
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/EpisodeNfoParser.cs4
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/MovieNfoParser.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/SeasonNfoParser.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/SeriesNfoParser.cs4
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/AlbumNfoProvider.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/ArtistNfoProvider.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs6
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs10
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/EpisodeNfoProvider.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/SeasonNfoProvider.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/SeriesNfoProvider.cs2
31 files changed, 100 insertions, 109 deletions
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index dd9383827..b84fe3c71 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -312,7 +312,6 @@
<Compile Include="Providers\ItemInfo.cs" />
<Compile Include="Providers\LiveTvProgramLookupInfo.cs" />
<Compile Include="Providers\LocalImageInfo.cs" />
- <Compile Include="Providers\LocalMetadataResult.cs" />
<Compile Include="Providers\MetadataRefreshMode.cs" />
<Compile Include="Providers\MetadataResult.cs" />
<Compile Include="Providers\MovieInfo.cs" />
diff --git a/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs b/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs
index 3a8ef7325..28a535310 100644
--- a/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.Controller.Providers
/// <param name="directoryService">The directory service.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task{MetadataResult{`0}}.</returns>
- Task<LocalMetadataResult<TItemType>> GetMetadata(ItemInfo info,
+ Task<MetadataResult<TItemType>> GetMetadata(ItemInfo info,
IDirectoryService directoryService,
CancellationToken cancellationToken);
}
diff --git a/MediaBrowser.Controller/Providers/LocalMetadataResult.cs b/MediaBrowser.Controller/Providers/LocalMetadataResult.cs
deleted file mode 100644
index 76b7a3136..000000000
--- a/MediaBrowser.Controller/Providers/LocalMetadataResult.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using MediaBrowser.Controller.Entities;
-using System.Collections.Generic;
-
-namespace MediaBrowser.Controller.Providers
-{
- public class LocalMetadataResult<T> : MetadataResult<T>
- where T : IHasMetadata
- {
- public List<LocalImageInfo> Images { get; set; }
- public List<UserItemData> UserDataLIst { get; set; }
-
- public LocalMetadataResult()
- {
- Images = new List<LocalImageInfo>();
- UserDataLIst = new List<UserItemData>();
- }
- }
-} \ No newline at end of file
diff --git a/MediaBrowser.Controller/Providers/MetadataResult.cs b/MediaBrowser.Controller/Providers/MetadataResult.cs
index 68cdf4d72..17175f91c 100644
--- a/MediaBrowser.Controller/Providers/MetadataResult.cs
+++ b/MediaBrowser.Controller/Providers/MetadataResult.cs
@@ -1,10 +1,20 @@
using MediaBrowser.Controller.Entities;
+using System;
using System.Collections.Generic;
+using System.Linq;
namespace MediaBrowser.Controller.Providers
{
public class MetadataResult<T>
{
+ public List<LocalImageInfo> Images { get; set; }
+ public List<UserItemData> UserDataList { get; set; }
+
+ public MetadataResult()
+ {
+ Images = new List<LocalImageInfo>();
+ }
+
public List<PersonInfo> People { get; set; }
public bool HasMetadata { get; set; }
@@ -31,5 +41,27 @@ namespace MediaBrowser.Controller.Providers
}
People.Clear();
}
+
+ public UserItemData GetOrAddUserData(string userId)
+ {
+ if (UserDataList == null)
+ {
+ UserDataList = new List<UserItemData>();
+ }
+
+ 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;
+ }
}
} \ No newline at end of file
diff --git a/MediaBrowser.LocalMetadata/BaseXmlProvider.cs b/MediaBrowser.LocalMetadata/BaseXmlProvider.cs
index 57358fe62..aa0f11475 100644
--- a/MediaBrowser.LocalMetadata/BaseXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/BaseXmlProvider.cs
@@ -13,11 +13,11 @@ namespace MediaBrowser.LocalMetadata
{
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);
@@ -47,7 +47,7 @@ namespace MediaBrowser.LocalMetadata
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 BaseXmlProvider(IFileSystem fileSystem)
{
diff --git a/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs
index 8ae0eafec..09cc1fdd7 100644
--- a/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/GameSystemXmlParser.cs
@@ -1,10 +1,10 @@
-using System.Threading;
-using System.Threading.Tasks;
-using System.Xml;
-using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
diff --git a/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs
index 98a5d5e91..fc22e75c5 100644
--- a/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs
@@ -21,7 +21,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<BoxSet> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<BoxSet> result, string path, CancellationToken cancellationToken)
{
new BoxSetXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/EpisodeXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/EpisodeXmlProvider.cs
index c1fc1ba5e..bf2730032 100644
--- a/MediaBrowser.LocalMetadata/Providers/EpisodeXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/EpisodeXmlProvider.cs
@@ -20,7 +20,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- 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>();
var chapters = new List<ChapterInfo>();
diff --git a/MediaBrowser.LocalMetadata/Providers/FolderXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/FolderXmlProvider.cs
index d18e92f16..bf059c553 100644
--- a/MediaBrowser.LocalMetadata/Providers/FolderXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/FolderXmlProvider.cs
@@ -20,7 +20,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Folder> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Folder> result, string path, CancellationToken cancellationToken)
{
new BaseItemXmlParser<Folder>(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/GameSystemXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/GameSystemXmlProvider.cs
index 9d86edbf9..f51605f06 100644
--- a/MediaBrowser.LocalMetadata/Providers/GameSystemXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/GameSystemXmlProvider.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<GameSystem> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<GameSystem> result, string path, CancellationToken cancellationToken)
{
new GameSystemXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/GameXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/GameXmlProvider.cs
index 97a3da147..7ee2c768b 100644
--- a/MediaBrowser.LocalMetadata/Providers/GameXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/GameXmlProvider.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Game> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Game> result, string path, CancellationToken cancellationToken)
{
new GameXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/MovieXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/MovieXmlProvider.cs
index 09f13b2ea..82c7dbd67 100644
--- a/MediaBrowser.LocalMetadata/Providers/MovieXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/MovieXmlProvider.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Movie> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Movie> result, string path, CancellationToken cancellationToken)
{
new MovieXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/MusicVideoXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/MusicVideoXmlProvider.cs
index b3476c03b..3171dd9a7 100644
--- a/MediaBrowser.LocalMetadata/Providers/MusicVideoXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/MusicVideoXmlProvider.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<MusicVideo> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<MusicVideo> result, string path, CancellationToken cancellationToken)
{
new MusicVideoXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/PersonXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/PersonXmlProvider.cs
index a97d86406..115d5b041 100644
--- a/MediaBrowser.LocalMetadata/Providers/PersonXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/PersonXmlProvider.cs
@@ -17,7 +17,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Person> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Person> result, string path, CancellationToken cancellationToken)
{
new BaseItemXmlParser<Person>(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs
index f4c2a6afb..3de311e2b 100644
--- a/MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Playlist> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Playlist> result, string path, CancellationToken cancellationToken)
{
new PlaylistXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/SeasonXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/SeasonXmlProvider.cs
index ab68e1e86..f0c8f0fa1 100644
--- a/MediaBrowser.LocalMetadata/Providers/SeasonXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/SeasonXmlProvider.cs
@@ -21,7 +21,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Season> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Season> result, string path, CancellationToken cancellationToken)
{
new SeasonXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/SeriesXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/SeriesXmlProvider.cs
index f27612f2f..80fdad483 100644
--- a/MediaBrowser.LocalMetadata/Providers/SeriesXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/SeriesXmlProvider.cs
@@ -21,7 +21,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Series> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Series> result, string path, CancellationToken cancellationToken)
{
new SeriesXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.LocalMetadata/Providers/VideoXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/VideoXmlProvider.cs
index 9ba64164e..56d289f97 100644
--- a/MediaBrowser.LocalMetadata/Providers/VideoXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/VideoXmlProvider.cs
@@ -18,7 +18,7 @@ namespace MediaBrowser.LocalMetadata.Providers
_logger = logger;
}
- protected override void Fetch(LocalMetadataResult<Video> result, string path, CancellationToken cancellationToken)
+ protected override void Fetch(MetadataResult<Video> result, string path, CancellationToken cancellationToken)
{
new VideoXmlParser(_logger).Fetch(result, path, cancellationToken);
}
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 9aa6485f1..cddc6f894 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -408,7 +408,10 @@ namespace MediaBrowser.Providers.Manager
refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.ImageUpdate;
}
- userDataList = localItem.UserDataLIst;
+ if (localItem.UserDataList != null)
+ {
+ userDataList.AddRange(localItem.UserDataList);
+ }
MergeData(localItem, temp, new List<MetadataFields>(), !options.ReplaceAllMetadata, true);
refreshResult.UpdateType = refreshResult.UpdateType | ItemUpdateType.MetadataImport;
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index d66d7ff19..53aa390ed 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 355f19de7..6dd70f298 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 ab4619875..8d5c2bf20 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 c80684c41..1164040fd 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 5025f4d18..03dba56e0 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 ac76db771..f6b78f342 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 8a958c3a6..64cbfe486 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 1e82dfce7..d7815dfb7 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 79315cbf3..fa9ef7797 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 2b5cfe9a3..b7bfdeeb0 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 85c2d4305..ec543ee0c 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 e2ac866ef..d9128821c 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);
}