Exemple #1
0
 public DeviceParser(List<DevicePattern> patterns, UserAgentParser uaParser,
     List<String> mobileUAFamilies, List<String> mobileOSFamilies)
 {
     this.patterns = patterns;
     this.uaParser = uaParser;
     this.mobileUAFamilies = mobileUAFamilies;
     this.mobileOSFamilies = mobileOSFamilies;
 }
Exemple #2
0
 public DeviceParser(List <DevicePattern> patterns, UserAgentParser uaParser,
                     List <String> mobileUAFamilies, List <String> mobileOSFamilies)
 {
     this.patterns         = patterns;
     this.uaParser         = uaParser;
     this.mobileUAFamilies = mobileUAFamilies;
     this.mobileOSFamilies = mobileOSFamilies;
 }
Exemple #3
0
 public static DeviceParser FromList(List<Dictionary<String, String>> configList, UserAgentParser uaParser, List<String> mobileUAFamilies, List<String> mobileOSFamilies)
 {
     List<DevicePattern> configPatterns = new List<DevicePattern>();
     foreach (var configMap in configList)
     {
         configPatterns.Add(DeviceParser.PatternFromMap(configMap));
     }
     return new DeviceParser(configPatterns, uaParser, mobileUAFamilies, mobileOSFamilies);
 }
Exemple #4
0
        public static UserAgentParser FromList(List <Dictionary <String, String> > configList)
        {
            List <UAPattern> configPatterns = new List <UAPattern>();

            foreach (Dictionary <String, String> configMap in configList)
            {
                configPatterns.Add(UserAgentParser.PatternFromMap(configMap));
            }
            return(new UserAgentParser(configPatterns));
        }
Exemple #5
0
        private void Initialize(Stream regexYaml)
        {
            TextReader input = new StreamReader(regexYaml);
            YamlStream yaml  = new YamlStream();

            yaml.Load(input);

            var regexConfigNode = (YamlMappingNode)yaml.Documents[0].RootNode;
            var regexConfig     = new Dictionary <String, YamlNode>();

            foreach (var entry in regexConfigNode.Children)
            {
                regexConfig.Add(((YamlScalarNode)entry.Key).Value, entry.Value);
            }

            var uaParserConfigs = (YamlSequenceNode)regexConfig["user_agent_parsers"];

            if (uaParserConfigs == null)
            {
                throw new ArgumentException("user_agent_parsers is missing from yaml");
            }
            uaParser = UserAgentParser.FromList(uaParserConfigs.ToListOfDictionaries());


            var osParserConfigs = (YamlSequenceNode)regexConfig["os_parsers"];

            if (osParserConfigs == null)
            {
                throw new ArgumentException("os_parsers is missing from yaml");
            }
            osParser = OSParser.FromList(osParserConfigs.ToListOfDictionaries());

            var deviceParserConfigs = (YamlSequenceNode)regexConfig["device_parsers"];

            if (deviceParserConfigs == null)
            {
                throw new ArgumentException("device_parsers is missing from yaml");
            }

            var mobileUAFamiliesList = (YamlSequenceNode)regexConfig["mobile_user_agent_families"];
            var mobileOSFamiliesList = (YamlSequenceNode)regexConfig["mobile_os_families"];

            List <String> mobileUAFamilies = (new List <String>(mobileUAFamiliesList.Select(f => f.ToString())));
            List <String> mobileOSFamilies = (new List <String>(mobileOSFamiliesList.Select(f => f.ToString())));

            deviceParser = DeviceParser.FromList(deviceParserConfigs.ToListOfDictionaries(), uaParser, mobileUAFamilies, mobileOSFamilies);
        }
Exemple #6
0
        public static DeviceParser FromList(List <Dictionary <String, String> > configList, UserAgentParser uaParser, List <String> mobileUAFamilies, List <String> mobileOSFamilies)
        {
            List <DevicePattern> configPatterns = new List <DevicePattern>();

            foreach (var configMap in configList)
            {
                configPatterns.Add(DeviceParser.PatternFromMap(configMap));
            }
            return(new DeviceParser(configPatterns, uaParser, mobileUAFamilies, mobileOSFamilies));
        }