aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/FileOrganization
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/FileOrganization')
-rw-r--r--MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs18
-rw-r--r--MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs2
-rw-r--r--MediaBrowser.Server.Implementations/FileOrganization/NameUtils.cs5
-rw-r--r--MediaBrowser.Server.Implementations/FileOrganization/OrganizerScheduledTask.cs16
-rw-r--r--MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs2
5 files changed, 24 insertions, 19 deletions
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
index 611f887ee..10e50e497 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/EpisodeFileOrganizer.cs
@@ -17,6 +17,7 @@ using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Server.Implementations.Library;
+using MediaBrowser.Server.Implementations.Logging;
namespace MediaBrowser.Server.Implementations.FileOrganization
{
@@ -57,7 +58,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
};
var namingOptions = ((LibraryManager) _libraryManager).GetNamingOptions();
- var resolver = new Naming.TV.EpisodeResolver(namingOptions, new Naming.Logging.NullLogger());
+ var resolver = new Naming.TV.EpisodeResolver(namingOptions, new PatternsLogger());
var episodeInfo = resolver.Resolve(path, FileInfoType.File) ??
new Naming.TV.EpisodeInfo();
@@ -209,7 +210,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
try
{
- File.Delete(path);
+ _fileSystem.DeleteFile(path);
}
catch (IOException ex)
{
@@ -225,7 +226,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
private List<string> GetOtherDuplicatePaths(string targetPath, Series series, int seasonNumber, int episodeNumber, int? endingEpisodeNumber)
{
- var episodePaths = series.RecursiveChildren
+ var episodePaths = series.GetRecursiveChildren()
.OfType<Episode>()
.Where(i =>
{
@@ -315,7 +316,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
{
try
{
- File.Delete(result.OriginalPath);
+ _fileSystem.DeleteFile(result.OriginalPath);
}
catch (Exception ex)
{
@@ -334,8 +335,8 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
result.ExtractedName = nameWithoutYear;
result.ExtractedYear = yearInName;
- return _libraryManager.RootFolder.RecursiveChildren
- .OfType<Series>()
+ return _libraryManager.RootFolder.GetRecursiveChildren(i => i is Series)
+ .Cast<Series>()
.Select(i => NameUtils.GetMatchScore(nameWithoutYear, yearInName, i))
.Where(i => i.Item2 > 0)
.OrderByDescending(i => i.Item2)
@@ -399,9 +400,8 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
{
// If there's already a season folder, use that
var season = series
- .RecursiveChildren
- .OfType<Season>()
- .FirstOrDefault(i => i.LocationType == LocationType.FileSystem && i.IndexNumber.HasValue && i.IndexNumber.Value == seasonNumber);
+ .GetRecursiveChildren(i => i is Season && i.LocationType == LocationType.FileSystem && i.IndexNumber.HasValue && i.IndexNumber.Value == seasonNumber)
+ .FirstOrDefault();
if (season != null)
{
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs b/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs
index 7c5269678..a6116ab09 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/FileOrganizationService.cs
@@ -85,7 +85,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
_logger.Info("Requested to delete {0}", result.OriginalPath);
try
{
- File.Delete(result.OriginalPath);
+ _fileSystem.DeleteFile(result.OriginalPath);
}
catch (Exception ex)
{
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/NameUtils.cs b/MediaBrowser.Server.Implementations/FileOrganization/NameUtils.cs
index d50696d81..624133d4f 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/NameUtils.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/NameUtils.cs
@@ -1,4 +1,4 @@
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Model.Extensions;
using MediaBrowser.Controller.Entities;
using System;
using System.Globalization;
@@ -54,9 +54,6 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
private static string GetComparableName(string name)
{
- // TODO: Improve this - should ignore spaces, periods, underscores, most likely all symbols and
- // possibly remove sorting words like "the", "and", etc.
-
name = RemoveDiacritics(name);
name = " " + name + " ";
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/OrganizerScheduledTask.cs b/MediaBrowser.Server.Implementations/FileOrganization/OrganizerScheduledTask.cs
index 8dfdfdaec..f993e1fc3 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/OrganizerScheduledTask.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/OrganizerScheduledTask.cs
@@ -13,7 +13,7 @@ using System.Threading.Tasks;
namespace MediaBrowser.Server.Implementations.FileOrganization
{
- public class OrganizerScheduledTask : IScheduledTask, IConfigurableScheduledTask, IScheduledTaskActivityLog
+ public class OrganizerScheduledTask : IScheduledTask, IConfigurableScheduledTask, IScheduledTaskActivityLog, IHasKey
{
private readonly ILibraryMonitor _libraryMonitor;
private readonly ILibraryManager _libraryManager;
@@ -54,10 +54,13 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
return _config.GetAutoOrganizeOptions().TvOptions;
}
- public Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
+ public async Task Execute(CancellationToken cancellationToken, IProgress<double> progress)
{
- return new TvFolderOrganizer(_libraryManager, _logger, _fileSystem, _libraryMonitor, _organizationService, _config, _providerManager)
- .Organize(GetTvOptions(), cancellationToken, progress);
+ if (GetTvOptions().IsEnabled)
+ {
+ await new TvFolderOrganizer(_libraryManager, _logger, _fileSystem, _libraryMonitor, _organizationService, _config, _providerManager)
+ .Organize(GetTvOptions(), cancellationToken, progress).ConfigureAwait(false);
+ }
}
public IEnumerable<ITaskTrigger> GetDefaultTriggers()
@@ -82,5 +85,10 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
{
get { return false; }
}
+
+ public string Key
+ {
+ get { return "AutoOrganize"; }
+ }
}
}
diff --git a/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs b/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
index cf120f147..e3c8e6d25 100644
--- a/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
+++ b/MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
@@ -166,7 +166,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
{
try
{
- File.Delete(file.FullName);
+ _fileSystem.DeleteFile(file.FullName);
}
catch (Exception ex)
{