diff options
| author | David <daullmer@gmail.com> | 2020-07-22 11:02:44 +0200 |
|---|---|---|
| committer | David <daullmer@gmail.com> | 2020-07-22 11:02:44 +0200 |
| commit | 90039e1ad32dba8dca3b98901d2dcec1c82aeea2 (patch) | |
| tree | cafee5bd19816e5242c48acaa7e8c31b8a907278 /Emby.Server.Implementations/Library/IgnorePatterns.cs | |
| parent | eae665a9c410540bdbf3880e340fa1a7fb19be92 (diff) | |
| parent | 5b57c81ee14ce585161b9ac331e6e3528826b815 (diff) | |
Merge remote-tracking branch 'remotes/jellyfin/api-migration' into api-audio
# Conflicts:
# Emby.Server.Implementations/ApplicationHost.cs
# Jellyfin.Api/Helpers/TranscodingJobHelper.cs
Diffstat (limited to 'Emby.Server.Implementations/Library/IgnorePatterns.cs')
| -rw-r--r-- | Emby.Server.Implementations/Library/IgnorePatterns.cs | 50 |
1 files changed, 42 insertions, 8 deletions
diff --git a/Emby.Server.Implementations/Library/IgnorePatterns.cs b/Emby.Server.Implementations/Library/IgnorePatterns.cs index d12b5855b..6e6ef1359 100644 --- a/Emby.Server.Implementations/Library/IgnorePatterns.cs +++ b/Emby.Server.Implementations/Library/IgnorePatterns.cs @@ -1,17 +1,20 @@ +#nullable enable + +using System; using System.Linq; using DotNet.Globbing; namespace Emby.Server.Implementations.Library { /// <summary> - /// Glob patterns for files to ignore + /// Glob patterns for files to ignore. /// </summary> public static class IgnorePatterns { /// <summary> - /// Files matching these glob patterns will be ignored + /// Files matching these glob patterns will be ignored. /// </summary> - public static readonly string[] Patterns = new string[] + private static readonly string[] _patterns = { "**/small.jpg", "**/albumart.jpg", @@ -19,32 +22,51 @@ namespace Emby.Server.Implementations.Library // Directories "**/metadata/**", + "**/metadata", "**/ps3_update/**", + "**/ps3_update", "**/ps3_vprm/**", + "**/ps3_vprm", "**/extrafanart/**", + "**/extrafanart", "**/extrathumbs/**", + "**/extrathumbs", "**/.actors/**", + "**/.actors", "**/.wd_tv/**", + "**/.wd_tv", "**/lost+found/**", + "**/lost+found", // WMC temp recording directories that will constantly be written to "**/TempRec/**", + "**/TempRec", "**/TempSBE/**", + "**/TempSBE", // Synology "**/eaDir/**", + "**/eaDir", "**/@eaDir/**", + "**/@eaDir", "**/#recycle/**", + "**/#recycle", // Qnap "**/@Recycle/**", + "**/@Recycle", "**/.@__thumb/**", + "**/.@__thumb", "**/$RECYCLE.BIN/**", + "**/$RECYCLE.BIN", "**/System Volume Information/**", + "**/System Volume Information", "**/.grab/**", + "**/.grab", // Unix hidden files and directories "**/.*/**", + "**/.*", // thumbs.db "**/thumbs.db", @@ -56,19 +78,31 @@ namespace Emby.Server.Implementations.Library private static readonly GlobOptions _globOptions = new GlobOptions { - Evaluation = { + Evaluation = + { CaseInsensitive = true } }; - private static readonly Glob[] _globs = Patterns.Select(p => Glob.Parse(p, _globOptions)).ToArray(); + private static readonly Glob[] _globs = _patterns.Select(p => Glob.Parse(p, _globOptions)).ToArray(); /// <summary> - /// Returns true if the supplied path should be ignored + /// Returns true if the supplied path should be ignored. /// </summary> - public static bool ShouldIgnore(string path) + /// <param name="path">The path to test.</param> + /// <returns>Whether to ignore the path.</returns> + public static bool ShouldIgnore(ReadOnlySpan<char> path) { - return _globs.Any(g => g.IsMatch(path)); + int len = _globs.Length; + for (int i = 0; i < len; i++) + { + if (_globs[i].IsMatch(path)) + { + return true; + } + } + + return false; } } } |
