aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs11
-rw-r--r--MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs3
-rw-r--r--MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs8
-rw-r--r--MediaBrowser.Providers/Movies/MovieXmlParser.cs16
-rw-r--r--MediaBrowser.Providers/Movies/MovieXmlProvider.cs8
-rw-r--r--MediaBrowser.Providers/Movies/TrailerXmlProvider.cs8
-rw-r--r--MediaBrowser.Providers/TV/EpisodeXmlParser.cs10
-rw-r--r--MediaBrowser.Providers/TV/EpisodeXmlProvider.cs5
8 files changed, 52 insertions, 17 deletions
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
index 48a639d4d..a6714f656 100644
--- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
+++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
@@ -1059,16 +1059,13 @@ namespace MediaBrowser.Controller.Providers
}
}
- protected async Task FetchChaptersFromXmlNode(BaseItem item, XmlReader reader, IItemRepository repository, CancellationToken cancellationToken)
+ protected List<ChapterInfo> FetchChaptersFromXmlNode(BaseItem item, XmlReader reader)
{
- var runtime = item.RunTimeTicks ?? 0;
-
using (reader)
{
- var chapters = GetChaptersFromXmlNode(reader)
- .Where(i => i.StartPositionTicks >= 0 && i.StartPositionTicks < runtime);
-
- await repository.SaveChapters(item.Id, chapters, cancellationToken).ConfigureAwait(false);
+ return GetChaptersFromXmlNode(reader)
+ .Where(i => i.StartPositionTicks >= 0)
+ .ToList();
}
}
diff --git a/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs b/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs
index a7c1e6e1b..1320db67a 100644
--- a/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/ILocalMetadataProvider.cs
@@ -1,4 +1,5 @@
using MediaBrowser.Controller.Entities;
+using MediaBrowser.Model.Entities;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
@@ -35,10 +36,12 @@ namespace MediaBrowser.Controller.Providers
public T Item { get; set; }
public List<LocalImageInfo> Images { get; set; }
+ public List<ChapterInfo> Chapters { get; set; }
public LocalMetadataResult()
{
Images = new List<LocalImageInfo>();
+ Chapters = new List<ChapterInfo>();
}
}
}
diff --git a/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs b/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs
index efc8db9e7..07b24c57d 100644
--- a/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs
+++ b/MediaBrowser.Providers/AdultVideos/AdultVideoXmlProvider.cs
@@ -1,8 +1,10 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using MediaBrowser.Providers.Movies;
+using System.Collections.Generic;
using System.IO;
using System.Threading;
@@ -20,7 +22,11 @@ namespace MediaBrowser.Providers.AdultVideos
protected override void Fetch(LocalMetadataResult<AdultVideo> result, string path, CancellationToken cancellationToken)
{
- new MovieXmlParser(_logger).Fetch(result.Item, path, cancellationToken);
+ var chapters = new List<ChapterInfo>();
+
+ new MovieXmlParser(_logger).Fetch(result.Item, chapters, path, cancellationToken);
+
+ result.Chapters = chapters;
}
protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService)
diff --git a/MediaBrowser.Providers/Movies/MovieXmlParser.cs b/MediaBrowser.Providers/Movies/MovieXmlParser.cs
index 64038e853..52795ac2d 100644
--- a/MediaBrowser.Providers/Movies/MovieXmlParser.cs
+++ b/MediaBrowser.Providers/Movies/MovieXmlParser.cs
@@ -1,7 +1,9 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
+using System.Collections.Generic;
using System.Threading;
using System.Xml;
@@ -12,13 +14,20 @@ namespace MediaBrowser.Providers.Movies
/// </summary>
public class MovieXmlParser : BaseItemXmlParser<Video>
{
+ private List<ChapterInfo> _chaptersFound;
+
public MovieXmlParser(ILogger logger)
: base(logger)
{
}
- public void FetchAsync(Video item, string metadataFile, CancellationToken cancellationToken)
+ public void Fetch(Video item,
+ List<ChapterInfo> chapters,
+ string metadataFile,
+ CancellationToken cancellationToken)
{
+ _chaptersFound = chapters;
+
Fetch(item, metadataFile, cancellationToken);
}
@@ -32,7 +41,6 @@ namespace MediaBrowser.Providers.Movies
switch (reader.Name)
{
case "TmdbCollectionName":
-
{
var val = reader.ReadElementContentAsString();
var movie = item as Movie;
@@ -41,13 +49,13 @@ namespace MediaBrowser.Providers.Movies
{
movie.TmdbCollectionName = val;
}
-
+
break;
}
case "Chapters":
- //_chaptersTask = FetchChaptersFromXmlNode(item, reader.ReadSubtree(), _itemRepo, CancellationToken.None);
+ _chaptersFound.AddRange(FetchChaptersFromXmlNode(item, reader.ReadSubtree()));
break;
default:
diff --git a/MediaBrowser.Providers/Movies/MovieXmlProvider.cs b/MediaBrowser.Providers/Movies/MovieXmlProvider.cs
index c2534348a..cc7293f53 100644
--- a/MediaBrowser.Providers/Movies/MovieXmlProvider.cs
+++ b/MediaBrowser.Providers/Movies/MovieXmlProvider.cs
@@ -1,7 +1,9 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
+using System.Collections.Generic;
using System.IO;
using System.Threading;
@@ -19,7 +21,11 @@ namespace MediaBrowser.Providers.Movies
protected override void Fetch(LocalMetadataResult<Movie> result, string path, CancellationToken cancellationToken)
{
- new MovieXmlParser(_logger).Fetch(result.Item, path, cancellationToken);
+ var chapters = new List<ChapterInfo>();
+
+ new MovieXmlParser(_logger).Fetch(result.Item, chapters, path, cancellationToken);
+
+ result.Chapters = chapters;
}
protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService)
diff --git a/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs b/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs
index 7e53c9e7f..d24bdb431 100644
--- a/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs
+++ b/MediaBrowser.Providers/Movies/TrailerXmlProvider.cs
@@ -1,7 +1,9 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
+using System.Collections.Generic;
using System.IO;
using System.Threading;
@@ -19,7 +21,11 @@ namespace MediaBrowser.Providers.Movies
protected override void Fetch(LocalMetadataResult<Trailer> result, string path, CancellationToken cancellationToken)
{
- new MovieXmlParser(_logger).Fetch(result.Item, path, cancellationToken);
+ var chapters = new List<ChapterInfo>();
+
+ new MovieXmlParser(_logger).Fetch(result.Item, chapters, path, cancellationToken);
+
+ result.Chapters = chapters;
}
protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService)
diff --git a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
index 2b2d607ca..20f267885 100644
--- a/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
+++ b/MediaBrowser.Providers/TV/EpisodeXmlParser.cs
@@ -17,6 +17,7 @@ namespace MediaBrowser.Providers.TV
public class EpisodeXmlParser : BaseItemXmlParser<Episode>
{
private List<LocalImageInfo> _imagesFound;
+ private List<ChapterInfo> _chaptersFound;
public EpisodeXmlParser(ILogger logger)
: base(logger)
@@ -25,9 +26,14 @@ namespace MediaBrowser.Providers.TV
private string _xmlPath;
- public void Fetch(Episode item, List<LocalImageInfo> images, string metadataFile, CancellationToken cancellationToken)
+ public void Fetch(Episode item,
+ List<LocalImageInfo> images,
+ List<ChapterInfo> chapters,
+ string metadataFile,
+ CancellationToken cancellationToken)
{
_imagesFound = images;
+ _chaptersFound = chapters;
_xmlPath = metadataFile;
Fetch(item, metadataFile, cancellationToken);
@@ -46,7 +52,7 @@ namespace MediaBrowser.Providers.TV
{
case "Chapters":
- //_chaptersTask = FetchChaptersFromXmlNode(item, reader.ReadSubtree(), _itemRepo, CancellationToken.None);
+ _chaptersFound.AddRange(FetchChaptersFromXmlNode(item, reader.ReadSubtree()));
break;
case "Episode":
diff --git a/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs b/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs
index 44755b18a..3def06bfe 100644
--- a/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs
+++ b/MediaBrowser.Providers/TV/EpisodeXmlProvider.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities.TV;
using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
using System.Collections.Generic;
using System.IO;
@@ -21,10 +22,12 @@ namespace MediaBrowser.Providers.TV
protected override void Fetch(LocalMetadataResult<Episode> result, string path, CancellationToken cancellationToken)
{
var images = new List<LocalImageInfo>();
+ var chapters = new List<ChapterInfo>();
- new EpisodeXmlParser(_logger).Fetch(result.Item, images, path, cancellationToken);
+ new EpisodeXmlParser(_logger).Fetch(result.Item, images, chapters, path, cancellationToken);
result.Images = images;
+ result.Chapters = chapters;
}
protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService)