diff --git a/MediaBrowser.Controller/Entities/AdultVideo.cs b/MediaBrowser.Controller/Entities/AdultVideo.cs
index 475d7bc54d..fc7632152c 100644
--- a/MediaBrowser.Controller/Entities/AdultVideo.cs
+++ b/MediaBrowser.Controller/Entities/AdultVideo.cs
@@ -1,7 +1,8 @@
-
+using System.Collections.Generic;
+
namespace MediaBrowser.Controller.Entities
{
- public class AdultVideo : Video, IHasPreferredMetadataLanguage
+ public class AdultVideo : Video, IHasPreferredMetadataLanguage, IHasTaglines
{
///
/// Gets or sets the preferred metadata language.
@@ -14,5 +15,12 @@ namespace MediaBrowser.Controller.Entities
///
/// The preferred metadata country code.
public string PreferredMetadataCountryCode { get; set; }
+
+ public List Taglines { get; set; }
+
+ public AdultVideo()
+ {
+ Taglines = new List();
+ }
}
}
diff --git a/MediaBrowser.Controller/Entities/AggregateFolder.cs b/MediaBrowser.Controller/Entities/AggregateFolder.cs
index 363b0a81b1..5cabe1cfe4 100644
--- a/MediaBrowser.Controller/Entities/AggregateFolder.cs
+++ b/MediaBrowser.Controller/Entities/AggregateFolder.cs
@@ -59,10 +59,10 @@ namespace MediaBrowser.Controller.Entities
protected override IEnumerable GetFileSystemChildren(IDirectoryService directoryService)
{
- return CreateResolveArgs().FileSystemChildren;
+ return CreateResolveArgs(directoryService).FileSystemChildren;
}
- private ItemResolveArgs CreateResolveArgs()
+ private ItemResolveArgs CreateResolveArgs(IDirectoryService directoryService)
{
var path = ContainingFolderPath;
@@ -81,7 +81,7 @@ namespace MediaBrowser.Controller.Entities
// When resolving the root, we need it's grandchildren (children of user views)
var flattenFolderDepth = isPhysicalRoot ? 2 : 0;
- var fileSystemDictionary = FileData.GetFilteredFileSystemEntries(args.Path, FileSystem, Logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf);
+ var fileSystemDictionary = FileData.GetFilteredFileSystemEntries(directoryService, args.Path, FileSystem, Logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf);
// Need to remove subpaths that may have been resolved from shortcuts
// Example: if \\server\movies exists, then strip out \\server\movies\action
diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs
index 25f42538cd..416796b697 100644
--- a/MediaBrowser.Controller/Entities/CollectionFolder.cs
+++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs
@@ -63,10 +63,10 @@ namespace MediaBrowser.Controller.Entities
protected override IEnumerable GetFileSystemChildren(IDirectoryService directoryService)
{
- return CreateResolveArgs().FileSystemChildren;
+ return CreateResolveArgs(directoryService).FileSystemChildren;
}
- private ItemResolveArgs CreateResolveArgs()
+ private ItemResolveArgs CreateResolveArgs(IDirectoryService directoryService)
{
var path = ContainingFolderPath;
@@ -85,7 +85,7 @@ namespace MediaBrowser.Controller.Entities
// When resolving the root, we need it's grandchildren (children of user views)
var flattenFolderDepth = isPhysicalRoot ? 2 : 0;
- var fileSystemDictionary = FileData.GetFilteredFileSystemEntries(args.Path, FileSystem, Logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf);
+ var fileSystemDictionary = FileData.GetFilteredFileSystemEntries(directoryService, args.Path, FileSystem, Logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf);
// Need to remove subpaths that may have been resolved from shortcuts
// Example: if \\server\movies exists, then strip out \\server\movies\action
@@ -123,7 +123,7 @@ namespace MediaBrowser.Controller.Entities
/// Task.
protected override Task ValidateChildrenInternal(IProgress progress, CancellationToken cancellationToken, bool recursive, bool refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService)
{
- CreateResolveArgs();
+ CreateResolveArgs(directoryService);
ResetDynamicChildren();
return NullTaskResult;
diff --git a/MediaBrowser.Controller/IO/FileData.cs b/MediaBrowser.Controller/IO/FileData.cs
index 270afd89a1..4ee8a810bc 100644
--- a/MediaBrowser.Controller/IO/FileData.cs
+++ b/MediaBrowser.Controller/IO/FileData.cs
@@ -1,5 +1,6 @@
using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
using System;
using System.Collections.Generic;
@@ -15,16 +16,16 @@ namespace MediaBrowser.Controller.IO
///
/// Gets the filtered file system entries.
///
+ /// The directory service.
/// The path.
/// The file system.
/// The logger.
/// The args.
- /// The search pattern.
/// The flatten folder depth.
/// if set to true [resolve shortcuts].
/// Dictionary{System.StringFileSystemInfo}.
/// path
- public static Dictionary GetFilteredFileSystemEntries(string path, IFileSystem fileSystem, ILogger logger, ItemResolveArgs args, string searchPattern = "*", int flattenFolderDepth = 0, bool resolveShortcuts = true)
+ public static Dictionary GetFilteredFileSystemEntries(IDirectoryService directoryService, string path, IFileSystem fileSystem, ILogger logger, ItemResolveArgs args, int flattenFolderDepth = 0, bool resolveShortcuts = true)
{
if (string.IsNullOrEmpty(path))
{
@@ -35,7 +36,7 @@ namespace MediaBrowser.Controller.IO
throw new ArgumentNullException("args");
}
- var entries = new DirectoryInfo(path).EnumerateFileSystemInfos(searchPattern, SearchOption.TopDirectoryOnly);
+ var entries = directoryService.GetFileSystemEntries(path);
if (!resolveShortcuts && flattenFolderDepth == 0)
{
@@ -79,7 +80,7 @@ namespace MediaBrowser.Controller.IO
}
else if (flattenFolderDepth > 0 && isDirectory)
{
- foreach (var child in GetFilteredFileSystemEntries(fullName, fileSystem, logger, args, flattenFolderDepth: flattenFolderDepth - 1, resolveShortcuts: resolveShortcuts))
+ foreach (var child in GetFilteredFileSystemEntries(directoryService, fullName, fileSystem, logger, args, flattenFolderDepth: flattenFolderDepth - 1, resolveShortcuts: resolveShortcuts))
{
dict[child.Key] = child.Value;
}
diff --git a/MediaBrowser.Controller/Library/ItemResolveArgs.cs b/MediaBrowser.Controller/Library/ItemResolveArgs.cs
index 5d6d850f08..d84e7aa8ca 100644
--- a/MediaBrowser.Controller/Library/ItemResolveArgs.cs
+++ b/MediaBrowser.Controller/Library/ItemResolveArgs.cs
@@ -96,18 +96,6 @@ namespace MediaBrowser.Controller.Library
}
}
- ///
- /// Gets a value indicating whether this instance is system file.
- ///
- /// true if this instance is system file; otherwise, false.
- public bool IsSystemFile
- {
- get
- {
- return (FileInfo.Attributes & FileAttributes.System) == FileAttributes.System;
- }
- }
-
///
/// Gets a value indicating whether this instance is vf.
///
@@ -237,22 +225,6 @@ namespace MediaBrowser.Controller.Library
return null;
}
- ///
- /// Gets the meta file by path.
- ///
- /// The path.
- /// FileSystemInfo.
- ///
- public FileSystemInfo GetMetaFileByPath(string path)
- {
- if (string.IsNullOrEmpty(path))
- {
- throw new ArgumentNullException();
- }
-
- return GetFileSystemEntryByPath(path);
- }
-
///
/// Gets the name of the meta file by.
///
diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs
index 828d662f68..e17ae76ffd 100644
--- a/MediaBrowser.Controller/Providers/DirectoryService.cs
+++ b/MediaBrowser.Controller/Providers/DirectoryService.cs
@@ -1,8 +1,8 @@
-using System;
+using MediaBrowser.Model.Logging;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using MediaBrowser.Model.Logging;
namespace MediaBrowser.Controller.Providers
{
@@ -34,7 +34,15 @@ namespace MediaBrowser.Controller.Providers
{
//_logger.Debug("Getting files for " + path);
- entries = new DirectoryInfo(path).EnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly).ToList();
+ try
+ {
+ entries = new DirectoryInfo(path).EnumerateFileSystemInfos("*", SearchOption.TopDirectoryOnly).ToList();
+ }
+ catch (DirectoryNotFoundException)
+ {
+ entries = new List();
+ }
+
_cache.Add(path, entries);
}
diff --git a/MediaBrowser.Controller/Providers/ILocalImageProvider.cs b/MediaBrowser.Controller/Providers/ILocalImageProvider.cs
index 11b8897e70..ec24e1d602 100644
--- a/MediaBrowser.Controller/Providers/ILocalImageProvider.cs
+++ b/MediaBrowser.Controller/Providers/ILocalImageProvider.cs
@@ -1,6 +1,7 @@
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Entities;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
@@ -60,7 +61,22 @@ namespace MediaBrowser.Controller.Providers
public void SetFormatFromMimeType(string mimeType)
{
-
+ if (mimeType.EndsWith("gif", StringComparison.OrdinalIgnoreCase))
+ {
+ Format = ImageFormat.Gif;
+ }
+ else if (mimeType.EndsWith("bmp", StringComparison.OrdinalIgnoreCase))
+ {
+ Format = ImageFormat.Bmp;
+ }
+ else if (mimeType.EndsWith("png", StringComparison.OrdinalIgnoreCase))
+ {
+ Format = ImageFormat.Png;
+ }
+ else
+ {
+ Format = ImageFormat.Jpg;
+ }
}
}
}
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index 5b22677322..beece997df 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -140,7 +140,8 @@ namespace MediaBrowser.Providers.Manager
var providersHadChanges = updateType > ItemUpdateType.None;
- if (refreshOptions.ForceSave || providersHadChanges)
+ // Save if changes were made, or it's never been saved before
+ if (refreshOptions.ForceSave || providersHadChanges || item.DateLastSaved == default(DateTime))
{
// Save to database
await SaveItem(itemOfType, updateType, cancellationToken);
diff --git a/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs b/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs
index ef7d9b122e..58e5ad1231 100644
--- a/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/AlbumXmlSaver.cs
@@ -32,16 +32,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- return item is MusicAlbum;
- }
-
- return false;
+ return item is MusicAlbum && updateType >= ItemUpdateType.MetadataDownload;
}
///
diff --git a/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs b/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs
index 93eafd123c..3e98e6225e 100644
--- a/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/ArtistXmlSaver.cs
@@ -32,19 +32,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded or metadata was manually edited, proceed
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- if (item is MusicArtist)
- {
- return true;
- }
- }
-
- return false;
+ return item is MusicArtist && updateType >= ItemUpdateType.MetadataDownload;
}
///
diff --git a/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs b/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs
index 9c3ceac7e4..dcf789b300 100644
--- a/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/BoxSetXmlSaver.cs
@@ -32,16 +32,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- return item is BoxSet;
- }
-
- return false;
+ return item is BoxSet && updateType >= ItemUpdateType.MetadataDownload;
}
///
diff --git a/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs b/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs
index 52242cb53c..2d4221bda3 100644
--- a/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/ChannelXmlSaver.cs
@@ -27,16 +27,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded or metadata was manually edited, proceed
- if ((wasMetadataEdited || wasMetadataDownloaded))
- {
- return item is LiveTvChannel;
- }
-
- return false;
+ return item is LiveTvChannel && updateType >= ItemUpdateType.MetadataDownload;
}
public string Name
diff --git a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
index 12efda85aa..661c75f41b 100644
--- a/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/EpisodeXmlSaver.cs
@@ -36,16 +36,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- return item is Episode;
- }
-
- return false;
+ return item is Episode && updateType >= ItemUpdateType.MetadataDownload;
}
public string Name
diff --git a/MediaBrowser.Providers/Savers/FolderXmlSaver.cs b/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
index 481189ee3f..db08eafe3f 100644
--- a/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/FolderXmlSaver.cs
@@ -34,24 +34,13 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var folder = item as Folder;
-
- if (folder == null)
- {
- return false;
- }
-
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
+ if (item is Folder)
{
if (!(item is Series) && !(item is BoxSet) && !(item is MusicArtist) && !(item is MusicAlbum) &&
!(item is Season) &&
!(item is GameSystem))
{
- return true;
+ return updateType >= ItemUpdateType.MetadataDownload;
}
}
diff --git a/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs b/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs
index 78098f50e1..98a2d03beb 100644
--- a/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/GameSystemXmlSaver.cs
@@ -1,6 +1,5 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
-using MediaBrowser.Model.Entities;
using System.Collections.Generic;
using System.IO;
using System.Security;
@@ -32,16 +31,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- return item is GameSystem;
- }
-
- return false;
+ return item is GameSystem && updateType >= ItemUpdateType.MetadataDownload;
}
///
diff --git a/MediaBrowser.Providers/Savers/GameXmlSaver.cs b/MediaBrowser.Providers/Savers/GameXmlSaver.cs
index ccb53a0173..959041a8c4 100644
--- a/MediaBrowser.Providers/Savers/GameXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/GameXmlSaver.cs
@@ -36,16 +36,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- return item is Game;
- }
-
- return false;
+ return item is Game && updateType >= ItemUpdateType.MetadataDownload;
}
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
diff --git a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
index a098c8160e..5957938543 100644
--- a/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/MovieXmlSaver.cs
@@ -46,15 +46,12 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
+ var video = item as Video;
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
+ // Check parent for null to avoid running this against things like video backdrops
+ if (video != null && !(item is Episode) && !video.IsOwnedItem)
{
- var video = item as Video;
- // Check parent for null to avoid running this against things like video backdrops
- return video != null && !(item is Episode) && !video.IsOwnedItem;
+ return updateType >= ItemUpdateType.MetadataDownload;
}
return false;
diff --git a/MediaBrowser.Providers/Savers/PersonXmlSaver.cs b/MediaBrowser.Providers/Savers/PersonXmlSaver.cs
index b612f9974d..9bbe5b5dc4 100644
--- a/MediaBrowser.Providers/Savers/PersonXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/PersonXmlSaver.cs
@@ -36,16 +36,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded or metadata was manually edited, proceed
- if ((wasMetadataEdited || wasMetadataDownloaded))
- {
- return item is Person;
- }
-
- return false;
+ return item is Person && updateType >= ItemUpdateType.MetadataDownload;
}
///
diff --git a/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs b/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs
index 3e59ff34ca..2a036722a7 100644
--- a/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/SeasonXmlSaver.cs
@@ -32,16 +32,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- return item is Season;
- }
-
- return false;
+ return item is Season && updateType >= ItemUpdateType.MetadataDownload;
}
///
diff --git a/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs b/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs
index 52f5a521bf..5f58001ecb 100644
--- a/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs
+++ b/MediaBrowser.Providers/Savers/SeriesXmlSaver.cs
@@ -33,16 +33,7 @@ namespace MediaBrowser.Providers.Savers
return false;
}
- var wasMetadataEdited = (updateType & ItemUpdateType.MetadataEdit) == ItemUpdateType.MetadataEdit;
- var wasMetadataDownloaded = (updateType & ItemUpdateType.MetadataDownload) == ItemUpdateType.MetadataDownload;
-
- // If new metadata has been downloaded and save local is on
- if (wasMetadataEdited || wasMetadataDownloaded)
- {
- return item is Series;
- }
-
- return false;
+ return item is Series && updateType >= ItemUpdateType.MetadataDownload;
}
///
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index d4da9dbe74..735565e252 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -497,7 +497,9 @@ namespace MediaBrowser.Server.Implementations.Library
// When resolving the root, we need it's grandchildren (children of user views)
var flattenFolderDepth = isPhysicalRoot ? 2 : 0;
- var fileSystemDictionary = FileData.GetFilteredFileSystemEntries(args.Path, _fileSystem, _logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf);
+ var directoryService = new DirectoryService(_logger);
+
+ var fileSystemDictionary = FileData.GetFilteredFileSystemEntries(directoryService, args.Path, _fileSystem, _logger, args, flattenFolderDepth: flattenFolderDepth, resolveShortcuts: isPhysicalRoot || args.IsVf);
// Need to remove subpaths that may have been resolved from shortcuts
// Example: if \\server\movies exists, then strip out \\server\movies\action
diff --git a/MediaBrowser.ServerApplication/NextPvr/LiveTvService.cs b/MediaBrowser.ServerApplication/NextPvr/LiveTvService.cs
deleted file mode 100644
index ab72b2c8e1..0000000000
--- a/MediaBrowser.ServerApplication/NextPvr/LiveTvService.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Common.Net;
-using MediaBrowser.Controller.LiveTv;
-using System.Collections.Generic;
-using System.Threading;
-using System.Threading.Tasks;
-using MediaBrowser.Model.Logging;
-using MediaBrowser.Model.Serialization;
-
-namespace MediaBrowser.Plugins.NextPvr
-{
- ///
- /// Class LiveTvService
- ///
- public class LiveTvService : ILiveTvService
- {
- private readonly ILogger _logger;
-
- private IApplicationPaths _appPaths;
- private IJsonSerializer _json;
- private IHttpClient _httpClient;
-
- public LiveTvService(ILogger logger)
- {
- _logger = logger;
- }
-
- ///
- /// Gets the channels async.
- ///
- /// The cancellation token.
- /// Task{IEnumerable{ChannelInfo}}.
- public Task> GetChannelsAsync(CancellationToken cancellationToken)
- {
- //using (var stream = await _httpClient.Get(new HttpRequestOptions()
- // {
- // Url = "",
- // CancellationToken = cancellationToken
- // }))
- //{
-
- //}
- _logger.Info("GetChannelsAsync");
-
- var channels = new List
- {
- new ChannelInfo
- {
- Name = "NBC",
- ServiceName = Name
- }
- };
-
- return Task.FromResult>(channels);
- }
-
- ///
- /// Gets the name.
- ///
- /// The name.
- public string Name
- {
- get { return "Next Pvr"; }
- }
- }
-}