aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.XbmcMetadata')
-rw-r--r--MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs35
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs2
-rw-r--r--MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs20
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs25
4 files changed, 46 insertions, 36 deletions
diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index 11cb25ab8..868c667f6 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -122,13 +122,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
var endingXml = xml.Substring(index);
- var imdbId = endingXml.Split('/')
- .FirstOrDefault(i => i.StartsWith("tt", StringComparison.OrdinalIgnoreCase));
-
- if (!string.IsNullOrWhiteSpace(imdbId))
- {
- item.SetProviderId(MetadataProviders.Imdb, imdbId);
- }
+ ParseProviderLinks(item, endingXml);
// If the file is just an imdb url, don't go any further
if (index == 0)
@@ -142,13 +136,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers
{
// If the file is just an Imdb url, handle that
- var imdbId = xml.Split('/')
- .FirstOrDefault(i => i.StartsWith("tt", StringComparison.OrdinalIgnoreCase));
-
- if (!string.IsNullOrWhiteSpace(imdbId))
- {
- item.SetProviderId(MetadataProviders.Imdb, imdbId);
- }
+ ParseProviderLinks(item, xml);
return;
}
@@ -181,6 +169,20 @@ namespace MediaBrowser.XbmcMetadata.Parsers
}
}
+ private void ParseProviderLinks(T item, string xml)
+ {
+ var imdbId = xml.Split('/')
+ .FirstOrDefault(i => i.StartsWith("tt", StringComparison.OrdinalIgnoreCase));
+
+ if (!string.IsNullOrWhiteSpace(imdbId))
+ {
+ item.SetProviderId(MetadataProviders.Imdb, imdbId);
+ }
+
+ // TODO: Support Tmdb
+ // http://www.themoviedb.org/movie/36557
+ }
+
protected virtual void FetchDataFromXmlNode(XmlReader reader, T item, List<UserItemData> userDataList)
{
var userDataUserId = _config.GetNfoConfiguration().UserId;
@@ -952,6 +954,11 @@ namespace MediaBrowser.XbmcMetadata.Parsers
var userData = GetOrAdd(userDataList, userDataUserId);
userData.PlayCount = parsedValue;
+
+ if (parsedValue > 0)
+ {
+ userData.Played = true;
+ }
}
}
}
diff --git a/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs
index 1ee1b4241..1e82dfce7 100644
--- a/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs
+++ b/MediaBrowser.XbmcMetadata/Providers/BaseNfoProvider.cs
@@ -59,7 +59,7 @@ namespace MediaBrowser.XbmcMetadata.Providers
public bool HasChanged(IHasMetadata item, IDirectoryService directoryService, DateTime date)
{
- var file = GetXmlFile(new ItemInfo { IsInMixedFolder = item.IsInMixedFolder, Path = item.Path }, directoryService);
+ var file = GetXmlFile(new ItemInfo(item), directoryService);
if (file == null)
{
diff --git a/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs b/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs
index 8119c162c..4dff051c7 100644
--- a/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs
+++ b/MediaBrowser.XbmcMetadata/Providers/BaseVideoNfoProvider.cs
@@ -5,8 +5,10 @@ using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.XbmcMetadata.Parsers;
+using MediaBrowser.XbmcMetadata.Savers;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Threading;
namespace MediaBrowser.XbmcMetadata.Providers
@@ -35,21 +37,9 @@ namespace MediaBrowser.XbmcMetadata.Providers
protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService)
{
- var path = GetMovieSavePath(info, FileSystem);
-
- return directoryService.GetFile(path);
- }
-
- public static string GetMovieSavePath(ItemInfo item, IFileSystem fileSystem)
- {
- if (Directory.Exists(item.Path))
- {
- var path = item.Path;
-
- return Path.Combine(path, Path.GetFileName(path) + ".nfo");
- }
-
- return Path.ChangeExtension(item.Path, ".nfo");
+ return MovieNfoSaver.GetMovieSavePaths(info, FileSystem)
+ .Select(directoryService.GetFile)
+ .FirstOrDefault(i => i != null);
}
}
} \ No newline at end of file
diff --git a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
index e67aa42c7..ddbd528d9 100644
--- a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
@@ -4,10 +4,12 @@ using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using System.Collections.Generic;
using System.IO;
+using System.Linq;
using System.Xml;
namespace MediaBrowser.XbmcMetadata.Savers
@@ -20,21 +22,32 @@ namespace MediaBrowser.XbmcMetadata.Savers
protected override string GetLocalSavePath(IHasMetadata item)
{
- return GetMovieSavePath(item, FileSystem);
+ return GetMovieSavePaths(new ItemInfo(item), FileSystem).FirstOrDefault();
}
- public static string GetMovieSavePath(IHasMetadata item, IFileSystem fileSystem)
+ public static List<string> GetMovieSavePaths(ItemInfo item, IFileSystem fileSystem)
{
- var video = (Video)item;
+ var list = new List<string>();
- if (video.VideoType == VideoType.Dvd || video.VideoType == VideoType.BluRay || video.VideoType == VideoType.HdDvd)
+ if (item.VideoType == VideoType.Dvd)
{
var path = item.ContainingFolderPath;
- return Path.Combine(path, Path.GetFileName(path) + ".nfo");
+ list.Add(Path.Combine(path, "VIDEO_TS", "VIDEO_TS.nfo"));
}
- return Path.ChangeExtension(item.Path, ".nfo");
+ if (item.VideoType == VideoType.Dvd || item.VideoType == VideoType.BluRay || item.VideoType == VideoType.HdDvd)
+ {
+ var path = item.ContainingFolderPath;
+
+ list.Add(Path.Combine(path, Path.GetFileName(path) + ".nfo"));
+ }
+ else
+ {
+ list.Add(Path.ChangeExtension(item.Path, ".nfo"));
+ }
+
+ return list;
}
protected override string GetRootElementName(IHasMetadata item)