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"; } - } - } -}