user_agent_parser.py (950B)
1 # mypy: allow-untyped-defs 2 3 from ua_parser import user_agent_parser 4 5 6 def parse_user_agent(user_agent_string): 7 user_agent = user_agent_parser.ParseUserAgent(user_agent_string) 8 9 name = user_agent["family"] 10 version = "0" 11 12 if user_agent["major"] is not None: 13 version = user_agent["major"] 14 15 if user_agent["minor"] is not None: 16 version = version + "." + user_agent["minor"] 17 18 if user_agent["patch"] is not None: 19 version = version + "." + user_agent["patch"] 20 21 return { 22 "name": name, 23 "version": version 24 } 25 26 27 def abbreviate_browser_name(name): 28 short_names = { 29 "Chrome": "Ch", 30 "Chrome Mobile WebView": "Ch", 31 "Chromium": "Cm", 32 "WebKit": "Wk", 33 "Safari": "Sf", 34 "Firefox": "FF", 35 "IE": "IE", 36 "Edge": "Ed", 37 "Opera": "Op" 38 } 39 40 if name in short_names: 41 return short_names[name] 42 else: 43 return "Xx"