def UpdateUserAgentStringListInResultParentForBrowse(request): """Browse results uses this list and it can be out of sync.""" ua_string = request.REQUEST.get('ua') category = request.REQUEST.get('category') family, v1, v2, v3 = UserAgent.parse_pretty(ua_string) logging.info('family %s, v1 %s, v2 %s, v3 %s' % (family, v1, v2, v3)) user_agent = db.Query(UserAgent) user_agent.filter('family =', family) user_agent.filter('v1 =', v1) user_agent.filter('v2 =', v2) user_agent.filter('v3 =', v3) logging.info('UA COUNT: %s' % user_agent.count()) user_agents = user_agent.fetch(1000) for user_agent in user_agents: logging.info('-----------------------') string_list = user_agent.get_string_list() logging.info('UA: %s, %s', (user_agent.key(), string_list)) parents = db.Query(ResultParent) parents.filter('user_agent =', user_agent.key()) if category: parents.filter('category =', category) logging.info('PARENTS COUNT: %s' % parents.count()) for parent in parents.fetch(1000): logging.info('PARENT: %s' % parent.key()) parent.user_agent_string_list = string_list parent.put() return http.HttpResponse('All done MF')
def BrowserKey(cls, browser): VERSION_DIGITS = 8 MAX_VERSION = 99999999 family, v1, v2, v3 = UserAgent.parse_pretty(browser.lower()) extra = None if family[-1] == ')': family, extra = family.split(' ', 1) return (family.lower(), cls._BrowserKeyPart(v1), cls._BrowserKeyPart(v2), cls._BrowserKeyPart(v3), extra)