public ExtensionFilter( ISettingsFileLoader loader ) { XDocument doc = loader.LoadFile( SettingsFileType.ExtensionFilter ); foreach ( XElement extension in doc.Descendants( "BannedFileExtensions" ).Descendants( "Extensions" ) ) { _extensions.Add( extension.Attribute( "value" ).Value ); } }
public MimeTypeFilter( ISettingsFileLoader loader ) { XDocument doc = loader.LoadFile( SettingsFileType.MimeTypeFilter ); foreach ( XElement mimeTypes in doc.Descendants( "BannedMimeTypes" ).Descendants( "MimeType" ) ) { string mimeType = mimeTypes.Attribute( "name" ).Value; if ( !_mimeTypes.ContainsKey( mimeType ) ) { _mimeTypes.Add( mimeType, null ); } } }
public BlacklistFilter( ISettingsFileLoader loader ) { XDocument doc = loader.LoadFile( SettingsFileType.Blacklist ); foreach ( XElement blackList in doc.Descendants( "Hosts" ).Descendants( "IP" ) ) { _blackListIpAddresses.Add( blackList.Attribute( "address" ).Value ); } foreach ( XElement blackListUrl in doc.Descendants( "Urls" ).Descendants( "Url" ) ) { _blackListDomains.Add( blackListUrl.Attribute( "name" ).Value ); } }
public WhiteListEvaluator( ISettingsFileLoader loader ) { var doc = loader.LoadFile( SettingsFileType.Whitelist ); foreach (var whiteList in doc.Descendants("Hosts").Descendants("IP")) { _whiteListIpAddresses.Add(whiteList.Attribute("address").Value); } foreach (var whiteListUrl in doc.Descendants("Urls").Descendants("Url")) { _whiteListDomains.Add(whiteListUrl.Attribute("name").Value); } }
public HtmlBodyFilter( ISettingsFileLoader loader, ILogger logger ) { _logger = logger; XDocument doc = loader.LoadFile( SettingsFileType.HtmlBodyFilter ); List<RegexFilter> filters = new List<RegexFilter>(); foreach ( XElement regex in doc.Descendants( "BannedWords" ).Descendants( "Regex" ) ) { filters.Add( new RegexFilter( regex.Attribute( "name" ).Value, regex.Attribute( "value" ).Value, int.Parse( regex.Attribute( "weight" ).Value ) ) ); } // Sort so that the "credit" filters are always hit first _filters = new List<RegexFilter>( filters.OrderBy( s => s.Weight ) ); }