aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-03-30 14:03:40 -0400
committerGitHub <noreply@github.com>2017-03-30 14:03:40 -0400
commitbfb177f8b64f611b8fb2376d86799085f3ef9204 (patch)
tree7bf0cc412a66acbe5e8fa94f8f4487b6d00d43a2
parent4165bcb1940e843a0a7b0dfe708b27f182e58bf3 (diff)
parent46646b95fde4701e9a879f11e66ad461f805a6a4 (diff)
Merge pull request #2558 from MediaBrowser/dev
Dev
-rw-r--r--BDInfo/BDROM.cs11
-rw-r--r--Emby.Common.Implementations/IO/ManagedFileSystem.cs32
-rw-r--r--Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs6
-rw-r--r--Emby.Server.Implementations/Library/LibraryManager.cs4
-rw-r--r--Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs2
-rw-r--r--MediaBrowser.Model/IO/IFileSystem.cs1
-rw-r--r--SharedVersion.cs2
7 files changed, 46 insertions, 12 deletions
diff --git a/BDInfo/BDROM.cs b/BDInfo/BDROM.cs
index d42e381da..123d1afe5 100644
--- a/BDInfo/BDROM.cs
+++ b/BDInfo/BDROM.cs
@@ -137,19 +137,19 @@ namespace BDInfo
}
if (DirectoryBDJO != null &&
- _fileSystem.GetFiles(DirectoryBDJO.FullName).Any())
+ _fileSystem.GetFilePaths(DirectoryBDJO.FullName).Any())
{
IsBDJava = true;
}
if (DirectorySNP != null &&
- GetFiles(DirectorySNP.FullName, ".mnv").Any())
+ GetFilePaths(DirectorySNP.FullName, ".mnv").Any())
{
IsPSP = true;
}
if (DirectorySSIF != null &&
- _fileSystem.GetFiles(DirectorySSIF.FullName).Any())
+ _fileSystem.GetFilePaths(DirectorySSIF.FullName).Any())
{
Is3D = true;
}
@@ -209,6 +209,11 @@ namespace BDInfo
return _fileSystem.GetFiles(path, new[] { extension }, false, false);
}
+ private IEnumerable<string> GetFilePaths(string path, string extension)
+ {
+ return _fileSystem.GetFilePaths(path, new[] { extension }, false, false);
+ }
+
public void Scan()
{
List<TSStreamClipFile> errorStreamClipFiles = new List<TSStreamClipFile>();
diff --git a/Emby.Common.Implementations/IO/ManagedFileSystem.cs b/Emby.Common.Implementations/IO/ManagedFileSystem.cs
index ed940eca5..4d7a86821 100644
--- a/Emby.Common.Implementations/IO/ManagedFileSystem.cs
+++ b/Emby.Common.Implementations/IO/ManagedFileSystem.cs
@@ -662,7 +662,7 @@ namespace Emby.Common.Implementations.IO
public IEnumerable<FileSystemMetadata> GetFiles(string path, bool recursive = false)
{
- return GetFiles(path, null, true, recursive);
+ return GetFiles(path, null, false, recursive);
}
public IEnumerable<FileSystemMetadata> GetFiles(string path, string[] extensions, bool enableCaseSensitiveExtensions, bool recursive = false)
@@ -791,8 +791,36 @@ namespace Emby.Common.Implementations.IO
public IEnumerable<string> GetFilePaths(string path, bool recursive = false)
{
+ return GetFilePaths(path, null, false, recursive);
+ }
+
+ public IEnumerable<string> GetFilePaths(string path, string[] extensions, bool enableCaseSensitiveExtensions, bool recursive = false)
+ {
var searchOption = recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly;
- return Directory.EnumerateFiles(path, "*", searchOption);
+
+ // On linux and osx the search pattern is case sensitive
+ // If we're OK with case-sensitivity, and we're only filtering for one extension, then use the native method
+ if (enableCaseSensitiveExtensions && extensions != null && extensions.Length == 1)
+ {
+ return Directory.EnumerateFiles(path, "*" + extensions[0], searchOption);
+ }
+
+ var files = Directory.EnumerateFiles(path, "*", searchOption);
+
+ if (extensions != null && extensions.Length > 0)
+ {
+ files = files.Where(i =>
+ {
+ var ext = Path.GetExtension(i);
+ if (ext == null)
+ {
+ return false;
+ }
+ return extensions.Contains(ext, StringComparer.OrdinalIgnoreCase);
+ });
+ }
+
+ return files;
}
public IEnumerable<string> GetFileSystemEntryPaths(string path, bool recursive = false)
diff --git a/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs b/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
index c885f03ac..2cbf2613e 100644
--- a/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
+++ b/Emby.Server.Implementations/FileOrganization/TvFolderOrganizer.cs
@@ -178,18 +178,18 @@ namespace Emby.Server.Implementations.FileOrganization
/// <param name="extensions">The extensions.</param>
private void DeleteLeftOverFiles(string path, IEnumerable<string> extensions)
{
- var eligibleFiles = _fileSystem.GetFiles(path, extensions.ToArray(), false, true)
+ var eligibleFiles = _fileSystem.GetFilePaths(path, extensions.ToArray(), false, true)
.ToList();
foreach (var file in eligibleFiles)
{
try
{
- _fileSystem.DeleteFile(file.FullName);
+ _fileSystem.DeleteFile(file);
}
catch (Exception ex)
{
- _logger.ErrorException("Error deleting file {0}", ex, file.FullName);
+ _logger.ErrorException("Error deleting file {0}", ex, file);
}
}
}
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs
index 17e678615..dbb0160a5 100644
--- a/Emby.Server.Implementations/Library/LibraryManager.cs
+++ b/Emby.Server.Implementations/Library/LibraryManager.cs
@@ -1255,9 +1255,9 @@ namespace Emby.Server.Implementations.Library
private string GetCollectionType(string path)
{
- return _fileSystem.GetFiles(path, new[] { ".collection" }, true, false)
+ return _fileSystem.GetFilePaths(path, new[] { ".collection" }, true, false)
.Select(i => _fileSystem.GetFileNameWithoutExtension(i))
- .FirstOrDefault();
+ .FirstOrDefault(i => !string.IsNullOrWhiteSpace(i));
}
/// <summary>
diff --git a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
index 8fa1bbe23..0a21603ee 100644
--- a/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
+++ b/Emby.Server.Implementations/LiveTv/TunerHosts/HdHomerun/HdHomerunHost.cs
@@ -382,7 +382,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts.HdHomerun
{
id = "native";
}
- id += "_" + url.GetMD5().ToString("N");
+ id += "_" + channelId.GetMD5().ToString("N") + "_" + url.GetMD5().ToString("N");
var mediaSource = new MediaSourceInfo
{
diff --git a/MediaBrowser.Model/IO/IFileSystem.cs b/MediaBrowser.Model/IO/IFileSystem.cs
index 180d2f227..e791503ab 100644
--- a/MediaBrowser.Model/IO/IFileSystem.cs
+++ b/MediaBrowser.Model/IO/IFileSystem.cs
@@ -298,6 +298,7 @@ namespace MediaBrowser.Model.IO
/// <param name="recursive">if set to <c>true</c> [recursive].</param>
/// <returns>IEnumerable&lt;System.String&gt;.</returns>
IEnumerable<string> GetFilePaths(string path, bool recursive = false);
+ IEnumerable<string> GetFilePaths(string path, string[] extensions, bool enableCaseSensitiveExtensions, bool recursive);
/// <summary>
/// Gets the file system entry paths.
diff --git a/SharedVersion.cs b/SharedVersion.cs
index d2454d088..0112684be 100644
--- a/SharedVersion.cs
+++ b/SharedVersion.cs
@@ -1,3 +1,3 @@
using System.Reflection;
-[assembly: AssemblyVersion("3.2.9.3")]
+[assembly: AssemblyVersion("3.2.10.1")]