From cbabc1998fb37720ac93a7e6d053c6b22d8aafce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Sun, 15 Jan 2023 10:20:22 +0100 Subject: [PATCH] feat: add keep header filter --- src/Anonymizer/Filters/HeaderFilter.cs | 5 ++ src/Anonymizer/Filters/HeaderFilterOptions.cs | 47 +++++++++++++++++-- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/Anonymizer/Filters/HeaderFilter.cs b/src/Anonymizer/Filters/HeaderFilter.cs index 5fd8079..0318fc3 100644 --- a/src/Anonymizer/Filters/HeaderFilter.cs +++ b/src/Anonymizer/Filters/HeaderFilter.cs @@ -32,6 +32,11 @@ public class HeaderFilter : IFilter } var header = splitted[0]; + if (_options.KeepHeaders is not null) + { + return _options.KeepHeaders.Contains(header); + } + return !_options.RemoveHeaders.Contains(header); } } \ No newline at end of file diff --git a/src/Anonymizer/Filters/HeaderFilterOptions.cs b/src/Anonymizer/Filters/HeaderFilterOptions.cs index ebc1b14..04485ce 100644 --- a/src/Anonymizer/Filters/HeaderFilterOptions.cs +++ b/src/Anonymizer/Filters/HeaderFilterOptions.cs @@ -6,7 +6,46 @@ namespace Anonymizer.Filters; -public record HeaderFilterOptions -( - IReadOnlyList RemoveHeaders -); \ No newline at end of file +/// +/// Options for . +/// +public class HeaderFilterOptions +{ + /// + /// Gets or sets the headers to remove. is prioritized. + /// + public IReadOnlyList RemoveHeaders { get; set; } = new[] + { + "mv", + "stat", + "say", + "spk", + "bn", + "inv", + + "qslot", + "umi", + "msgi2", + "qnai2", + + "die", + + "throw", + + "bf", + "bf_e", + "dm", + "finit", + "finfo", + "ptctl", + "suctl", // figure out what it does + "ct", // figure out what it does + }; + + /// + /// Gets or sets the headers to keep. Takes priority before remove headers. + /// + public IReadOnlyList? KeepHeaders { get; set; } = null; + + // rdlst, raid, raidmbf, raidbf, in, out, c_info, c_mode +} \ No newline at end of file -- 2.48.1