mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-07-22 05:30:46 +02:00
Auto-Organize: PathTooLongException on source file should not break auto-organize task
PathTooLongException can not only occur with long destination paths but also with too long file names of files contained in a watch folder. Previously this condition caused the auto-organize task to break. With this change, we still log the exception, but auto-organize processing will continue to handle all other files. Conflicts: MediaBrowser.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
This commit is contained in:
parent
63b218be44
commit
073f7ac1ab
|
@ -35,7 +35,22 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
|
||||||
_providerManager = providerManager;
|
_providerManager = providerManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task Organize(TvFileOrganizationOptions options, CancellationToken cancellationToken, IProgress<double> progress)
|
private bool IsValidVideoFile(FileInfo fileInfo)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var fullName = fileInfo.FullName;
|
||||||
|
return _libraryManager.IsVideoFile(fileInfo.FullName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.ErrorException("Error organizing file {0}", ex, fileInfo.Name);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task Organize(AutoOrganizeOptions options, CancellationToken cancellationToken, IProgress<double> progress)
|
||||||
{
|
{
|
||||||
var minFileBytes = options.MinFileSizeMb * 1024 * 1024;
|
var minFileBytes = options.MinFileSizeMb * 1024 * 1024;
|
||||||
|
|
||||||
|
@ -43,7 +58,7 @@ namespace MediaBrowser.Server.Implementations.FileOrganization
|
||||||
|
|
||||||
var eligibleFiles = watchLocations.SelectMany(GetFilesToOrganize)
|
var eligibleFiles = watchLocations.SelectMany(GetFilesToOrganize)
|
||||||
.OrderBy(_fileSystem.GetCreationTimeUtc)
|
.OrderBy(_fileSystem.GetCreationTimeUtc)
|
||||||
.Where(i => _libraryManager.IsVideoFile(i.FullName) && i.Length >= minFileBytes)
|
.Where(i => IsValidVideoFile(i) && i.Length >= minFileBytes)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var processedFolders = new HashSet<string>();
|
var processedFolders = new HashSet<string>();
|
||||||
|
|
Loading…
Reference in a new issue