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 );
            }
        }
Exemple #4
0
        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 ) );
        }