diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Entities/BaseItem.cs | 8 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/TVUtils.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Controller/MediaBrowser.Controller.csproj | 1 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Sync/ISyncManager.cs | 22 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Sync/ISyncRepository.cs | 58 |
5 files changed, 73 insertions, 30 deletions
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index b891bcfb2..2bdbab084 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -529,10 +529,10 @@ namespace MediaBrowser.Controller.Entities .Where(i => string.Equals(i.Name, TrailerFolderName, StringComparison.OrdinalIgnoreCase)) .SelectMany(i => i.EnumerateFiles("*", SearchOption.TopDirectoryOnly)) .ToList(); - + // Support plex/xbmc convention files.AddRange(fileSystemChildren.OfType<FileInfo>() - .Where(i => System.IO.Path.GetFileNameWithoutExtension(i.Name).EndsWith(XbmcTrailerFileSuffix, StringComparison.OrdinalIgnoreCase) && !string.Equals(Path, i.FullName, StringComparison.OrdinalIgnoreCase)) + .Where(i => FileSystem.GetFileNameWithoutExtension(i).EndsWith(XbmcTrailerFileSuffix, StringComparison.OrdinalIgnoreCase) && !string.Equals(Path, i.FullName, StringComparison.OrdinalIgnoreCase)) ); return LibraryManager.ResolvePaths<Trailer>(files, directoryService, null).Select(video => @@ -564,7 +564,7 @@ namespace MediaBrowser.Controller.Entities // Support plex/xbmc convention files.AddRange(fileSystemChildren.OfType<FileInfo>() - .Where(i => string.Equals(System.IO.Path.GetFileNameWithoutExtension(i.Name), ThemeSongFilename, StringComparison.OrdinalIgnoreCase)) + .Where(i => string.Equals(FileSystem.GetFileNameWithoutExtension(i), ThemeSongFilename, StringComparison.OrdinalIgnoreCase)) ); return LibraryManager.ResolvePaths<Audio.Audio>(files, directoryService, null).Select(audio => @@ -1564,7 +1564,7 @@ namespace MediaBrowser.Controller.Entities if (string.IsNullOrEmpty(Name) && !string.IsNullOrEmpty(Path)) { - Name = System.IO.Path.GetFileNameWithoutExtension(Path); + Name = FileSystem.GetFileNameWithoutExtension(Path); hasChanges = true; } diff --git a/MediaBrowser.Controller/Library/TVUtils.cs b/MediaBrowser.Controller/Library/TVUtils.cs index af0ff8319..86699272e 100644 --- a/MediaBrowser.Controller/Library/TVUtils.cs +++ b/MediaBrowser.Controller/Library/TVUtils.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Entities; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; using System; @@ -189,11 +190,14 @@ namespace MediaBrowser.Controller.Library /// </summary> /// <param name="path">The path.</param> /// <param name="directoryService">The directory service.</param> + /// <param name="fileSystem">The file system.</param> /// <returns><c>true</c> if [is season folder] [the specified path]; otherwise, <c>false</c>.</returns> - private static bool IsSeasonFolder(string path, IDirectoryService directoryService) + private static bool IsSeasonFolder(string path, IDirectoryService directoryService, IFileSystem fileSystem) { // It's a season folder if it's named as such and does not contain any audio files, apart from theme.mp3 - return GetSeasonNumberFromPath(path) != null && !directoryService.GetFiles(path).Any(i => EntityResolutionHelper.IsAudioFile(i.FullName) && !string.Equals(Path.GetFileNameWithoutExtension(i.FullName), BaseItem.ThemeSongFilename)); + return GetSeasonNumberFromPath(path) != null && + !directoryService.GetFiles(path) + .Any(i => EntityResolutionHelper.IsAudioFile(i.FullName) && !string.Equals(fileSystem.GetFileNameWithoutExtension(i), BaseItem.ThemeSongFilename)); } /// <summary> @@ -204,7 +208,7 @@ namespace MediaBrowser.Controller.Library /// <param name="fileSystemChildren">The file system children.</param> /// <param name="directoryService">The directory service.</param> /// <returns><c>true</c> if [is series folder] [the specified path]; otherwise, <c>false</c>.</returns> - public static bool IsSeriesFolder(string path, bool considerSeasonlessSeries, IEnumerable<FileSystemInfo> fileSystemChildren, IDirectoryService directoryService) + public static bool IsSeriesFolder(string path, bool considerSeasonlessSeries, IEnumerable<FileSystemInfo> fileSystemChildren, IDirectoryService directoryService, IFileSystem fileSystem) { // A folder with more than 3 non-season folders in will not becounted as a series var nonSeriesFolders = 0; @@ -225,7 +229,7 @@ namespace MediaBrowser.Controller.Library if ((attributes & FileAttributes.Directory) == FileAttributes.Directory) { - if (IsSeasonFolder(child.FullName, directoryService)) + if (IsSeasonFolder(child.FullName, directoryService, fileSystem)) { return true; } diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj index 5c3f10b54..aee118f9a 100644 --- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj +++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj @@ -322,6 +322,7 @@ <Compile Include="Sync\ICloudSyncProvider.cs" /> <Compile Include="Sync\ISyncManager.cs" /> <Compile Include="Sync\ISyncProvider.cs" /> + <Compile Include="Sync\ISyncRepository.cs" /> <Compile Include="Themes\IAppThemeManager.cs" /> <Compile Include="Themes\InternalThemeImage.cs" /> </ItemGroup> diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs index 714e71a1f..1d5ab7d3e 100644 --- a/MediaBrowser.Controller/Sync/ISyncManager.cs +++ b/MediaBrowser.Controller/Sync/ISyncManager.cs @@ -13,7 +13,7 @@ namespace MediaBrowser.Controller.Sync /// </summary> /// <param name="request">The request.</param> /// <returns>Task.</returns> - Task<List<SyncJob>> CreateJob(SyncJobRequest request); + Task<SyncJobCreationResult> CreateJob(SyncJobRequest request); /// <summary> /// Gets the jobs. @@ -22,24 +22,11 @@ namespace MediaBrowser.Controller.Sync QueryResult<SyncJob> GetJobs(SyncJobQuery query); /// <summary> - /// Gets the schedules. - /// </summary> - /// <returns>QueryResult<SyncSchedule>.</returns> - QueryResult<SyncSchedule> GetSchedules(SyncScheduleQuery query); - - /// <summary> /// Gets the job. /// </summary> /// <param name="id">The identifier.</param> /// <returns>SyncJob.</returns> SyncJob GetJob(string id); - - /// <summary> - /// Gets the schedule. - /// </summary> - /// <param name="id">The identifier.</param> - /// <returns>SyncSchedule.</returns> - SyncSchedule GetSchedule(string id); /// <summary> /// Cancels the job. @@ -49,13 +36,6 @@ namespace MediaBrowser.Controller.Sync Task CancelJob(string id); /// <summary> - /// Cancels the schedule. - /// </summary> - /// <param name="id">The identifier.</param> - /// <returns>Task.</returns> - Task CancelSchedule(string id); - - /// <summary> /// Adds the parts. /// </summary> void AddParts(IEnumerable<ISyncProvider> providers); diff --git a/MediaBrowser.Controller/Sync/ISyncRepository.cs b/MediaBrowser.Controller/Sync/ISyncRepository.cs new file mode 100644 index 000000000..9cce69bdc --- /dev/null +++ b/MediaBrowser.Controller/Sync/ISyncRepository.cs @@ -0,0 +1,58 @@ +using MediaBrowser.Model.Querying; +using MediaBrowser.Model.Sync; +using System.Threading.Tasks; + +namespace MediaBrowser.Controller.Sync +{ + public interface ISyncRepository + { + /// <summary> + /// Gets the job. + /// </summary> + /// <param name="id">The identifier.</param> + /// <returns>SyncJob.</returns> + SyncJob GetJob(string id); + + /// <summary> + /// Creates the specified job. + /// </summary> + /// <param name="job">The job.</param> + /// <returns>Task.</returns> + Task Create(SyncJob job); + + /// <summary> + /// Updates the specified job. + /// </summary> + /// <param name="job">The job.</param> + /// <returns>Task.</returns> + Task Update(SyncJob job); + + /// <summary> + /// Gets the jobs. + /// </summary> + /// <param name="query">The query.</param> + /// <returns>QueryResult<SyncJob>.</returns> + QueryResult<SyncJob> GetJobs(SyncJobQuery query); + + /// <summary> + /// Gets the job item. + /// </summary> + /// <param name="id">The identifier.</param> + /// <returns>SyncJobItem.</returns> + SyncJobItem GetJobItem(string id); + + /// <summary> + /// Creates the specified job item. + /// </summary> + /// <param name="jobItem">The job item.</param> + /// <returns>Task.</returns> + Task Create(SyncJobItem jobItem); + + /// <summary> + /// Updates the specified job item. + /// </summary> + /// <param name="jobItem">The job item.</param> + /// <returns>Task.</returns> + Task Update(SyncJobItem jobItem); + } +} |
