diff options
| author | Cody Robibero <cody@robibe.ro> | 2020-06-20 15:33:13 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-06-20 15:33:13 -0600 |
| commit | 43221fc26b46ac8d55b8bac7cec859dc8ec3883b (patch) | |
| tree | be1fbaf44475fc5aa21df24ac8e5f3cf05abc7c9 /Emby.Server.Implementations/Library/IgnorePatterns.cs | |
| parent | 46006a1aff5759e9843813a9d31dc79672af71d5 (diff) | |
| parent | bb947718eaee3a8381d9b9e6ed926676de39d7c9 (diff) | |
Merge branch 'master' into SSDP
Diffstat (limited to 'Emby.Server.Implementations/Library/IgnorePatterns.cs')
| -rw-r--r-- | Emby.Server.Implementations/Library/IgnorePatterns.cs | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Library/IgnorePatterns.cs b/Emby.Server.Implementations/Library/IgnorePatterns.cs new file mode 100644 index 000000000..8c4098948 --- /dev/null +++ b/Emby.Server.Implementations/Library/IgnorePatterns.cs @@ -0,0 +1,74 @@ +using System.Linq; +using DotNet.Globbing; + +namespace Emby.Server.Implementations.Library +{ + /// <summary> + /// Glob patterns for files to ignore. + /// </summary> + public static class IgnorePatterns + { + /// <summary> + /// Files matching these glob patterns will be ignored. + /// </summary> + public static readonly string[] Patterns = new string[] + { + "**/small.jpg", + "**/albumart.jpg", + "**/*sample*", + + // Directories + "**/metadata/**", + "**/ps3_update/**", + "**/ps3_vprm/**", + "**/extrafanart/**", + "**/extrathumbs/**", + "**/.actors/**", + "**/.wd_tv/**", + "**/lost+found/**", + + // WMC temp recording directories that will constantly be written to + "**/TempRec/**", + "**/TempSBE/**", + + // Synology + "**/eaDir/**", + "**/@eaDir/**", + "**/#recycle/**", + + // Qnap + "**/@Recycle/**", + "**/.@__thumb/**", + "**/$RECYCLE.BIN/**", + "**/System Volume Information/**", + "**/.grab/**", + + // Unix hidden files and directories + "**/.*/**", + + // thumbs.db + "**/thumbs.db", + + // bts sync files + "**/*.bts", + "**/*.sync", + }; + + private static readonly GlobOptions _globOptions = new GlobOptions + { + Evaluation = { + CaseInsensitive = true + } + }; + + private static readonly Glob[] _globs = Patterns.Select(p => Glob.Parse(p, _globOptions)).ToArray(); + + /// <summary> + /// Returns true if the supplied path should be ignored. + /// </summary> + public static bool ShouldIgnore(string path) + { + return _globs.Any(g => g.IsMatch(path)); + } + } +} |
