#!/usr/bin/python import re from collections import defaultdict import os import sys sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..')) from zerver.lib.user_agent import parse_user_agent user_agents_parsed = defaultdict(int) user_agents_path = os.path.join(os.path.dirname(__file__), "user_agents_unique") parse_errors = 0 for line in file(user_agents_path).readlines(): line = line.strip() match = re.match('^(?P[0-9]+) "(?P.*)"$', line) if match is None: print line continue groupdict = match.groupdict() count = groupdict["count"] user_agent = groupdict["user_agent"] ret = parse_user_agent(user_agent) if ret is None: print "parse error", line parse_errors += 1 continue user_agents_parsed[ret["name"]] += int(count) for key in user_agents_parsed: print " ", key, user_agents_parsed[key] print "%s parse errors!" % (parse_errors,)