diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-24 01:28:40 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-12-24 01:28:40 -0500 |
| commit | 36577ac42ea9a38a155ca7cd0d17d2d43563a27f (patch) | |
| tree | 5acb9adb80f588c8e675b82681548e09e33d4bab /MediaBrowser.Server.Implementations | |
| parent | 381aa7adc529c4c18735667fc91e9091b5fd5bcd (diff) | |
sync updates
Diffstat (limited to 'MediaBrowser.Server.Implementations')
3 files changed, 26 insertions, 37 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs index 00bed4086..582412562 100644 --- a/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs +++ b/MediaBrowser.Server.Implementations/Library/Resolvers/TV/SeriesResolver.cs @@ -1,17 +1,15 @@ using MediaBrowser.Common.IO; -using MediaBrowser.Controller.Entities.Audio; using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Logging; +using MediaBrowser.Naming.Common; +using MediaBrowser.Naming.TV; using System; using System.Collections.Generic; using System.IO; -using MediaBrowser.Naming.Common; -using MediaBrowser.Naming.IO; -using MediaBrowser.Naming.TV; namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV { @@ -60,10 +58,8 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV var collectionType = args.GetCollectionType(); - var isTvShowsFolder = string.Equals(collectionType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase); - // If there's a collection type and it's not tv, it can't be a series - if (!isTvShowsFolder) + if (!string.Equals(collectionType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase)) { return null; } @@ -73,7 +69,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV return null; } - if (IsSeriesFolder(args.Path, collectionType, args.FileSystemChildren, args.DirectoryService, _fileSystem, _logger, _libraryManager)) + if (IsSeriesFolder(args.Path, args.FileSystemChildren, args.DirectoryService, _fileSystem, _logger, _libraryManager)) { return new Series { @@ -90,14 +86,13 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV /// Determines whether [is series folder] [the specified path]. /// </summary> /// <param name="path">The path.</param> - /// <param name="collectionType">Type of the collection.</param> /// <param name="fileSystemChildren">The file system children.</param> /// <param name="directoryService">The directory service.</param> /// <param name="fileSystem">The file system.</param> /// <param name="logger">The logger.</param> /// <param name="libraryManager">The library manager.</param> /// <returns><c>true</c> if [is series folder] [the specified path]; otherwise, <c>false</c>.</returns> - public static bool IsSeriesFolder(string path, string collectionType, IEnumerable<FileSystemInfo> fileSystemChildren, IDirectoryService directoryService, IFileSystem fileSystem, ILogger logger, ILibraryManager libraryManager) + public static bool IsSeriesFolder(string path, IEnumerable<FileSystemInfo> fileSystemChildren, IDirectoryService directoryService, IFileSystem fileSystem, ILogger logger, ILibraryManager libraryManager) { foreach (var child in fileSystemChildren) { @@ -118,7 +113,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV if ((attributes & FileAttributes.Directory) == FileAttributes.Directory) { - if (IsSeasonFolder(child.FullName, collectionType)) + if (IsSeasonFolder(child.FullName)) { //logger.Debug("{0} is a series because of season folder {1}.", path, child.FullName); return true; @@ -130,22 +125,7 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV if (libraryManager.IsVideoFile(fullName) || IsVideoPlaceHolder(fullName)) { - var isTvShowsFolder = string.Equals(collectionType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase); - - // We can fast track this for known tv folders - if (isTvShowsFolder) - { - return true; - } - - var resolver = new Naming.TV.EpisodeResolver(new ExtendedNamingOptions(), new Naming.Logging.NullLogger()); - - var episodeInfo = resolver.Resolve(fullName, FileInfoType.File, isTvShowsFolder, false); - - if (episodeInfo != null && (episodeInfo.EpisodeNumber.HasValue || episodeInfo.IsByDate)) - { - return true; - } + return true; } } } @@ -176,12 +156,10 @@ namespace MediaBrowser.Server.Implementations.Library.Resolvers.TV /// Determines whether [is season folder] [the specified path]. /// </summary> /// <param name="path">The path.</param> - /// <param name="collectionType">Type of the collection.</param> /// <returns><c>true</c> if [is season folder] [the specified path]; otherwise, <c>false</c>.</returns> - private static bool IsSeasonFolder(string path, string collectionType) + private static bool IsSeasonFolder(string path) { - var isTvFolder = string.Equals(collectionType, CollectionType.TvShows, StringComparison.OrdinalIgnoreCase); - var seasonNumber = new SeasonPathParser(new ExtendedNamingOptions(), new RegexProvider()).Parse(path, isTvFolder).SeasonNumber; + var seasonNumber = new SeasonPathParser(new ExtendedNamingOptions(), new RegexProvider()).Parse(path, true).SeasonNumber; return seasonNumber.HasValue; } diff --git a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs index 94eed50f6..deef503ea 100644 --- a/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs +++ b/MediaBrowser.Server.Implementations/Sync/AppSyncProvider.cs @@ -8,7 +8,7 @@ using System.Linq; namespace MediaBrowser.Server.Implementations.Sync { - public class AppSyncProvider : ISyncProvider + public class AppSyncProvider : ISyncProvider, IHasUniqueTargetIds { private readonly IDeviceManager _deviceManager; diff --git a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs index 6b15aaed7..3006c1be9 100644 --- a/MediaBrowser.Server.Implementations/Sync/SyncManager.cs +++ b/MediaBrowser.Server.Implementations/Sync/SyncManager.cs @@ -69,7 +69,12 @@ namespace MediaBrowser.Server.Implementations.Sync } var target = GetSyncTargets(request.UserId) - .First(i => string.Equals(request.TargetId, i.Id)); + .FirstOrDefault(i => string.Equals(request.TargetId, i.Id)); + + if (target == null) + { + throw new ArgumentException("Sync target not found."); + } var jobId = Guid.NewGuid().ToString("N"); @@ -173,17 +178,23 @@ namespace MediaBrowser.Server.Implementations.Sync private IEnumerable<SyncTarget> GetSyncTargets(ISyncProvider provider, string userId) { - var providerId = GetSyncProviderId(provider); - return provider.GetSyncTargets().Select(i => new SyncTarget { Name = i.Name, - Id = GetSyncTargetId(providerId, i) + Id = GetSyncTargetId(provider, i) }); } - private string GetSyncTargetId(string providerId, SyncTarget target) + private string GetSyncTargetId(ISyncProvider provider, SyncTarget target) { + var hasUniqueId = provider as IHasUniqueTargetIds; + + if (hasUniqueId != null) + { + return target.Id; + } + + var providerId = GetSyncProviderId(provider); return (providerId + "-" + target.Id).GetMD5().ToString("N"); } |
