diff options
| author | crobibero <cody@robibe.ro> | 2020-06-19 10:49:49 -0600 |
|---|---|---|
| committer | crobibero <cody@robibe.ro> | 2020-06-19 10:49:49 -0600 |
| commit | 494f6970724f3243ed5a6ebe89d756bf2759d3eb (patch) | |
| tree | 3b46944461c30fb750170534d15dc90ffa386be0 /Emby.Server.Implementations/Library/IgnorePatterns.cs | |
| parent | 000088f8f94e24ea715f15b722a2e64958bec07b (diff) | |
| parent | 305808dd0ac4f86bb1663e7f6ba2b22064ace0ba (diff) | |
Merge remote-tracking branch 'upstream/api-migration' into api-library
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..d12b5855b --- /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)); + } + } +} |
