def getQueryFromURL(self, queryVersion, url): """ Use regexp to turn "update/3/Firefox/4.0b13pre/20110303122430/Darwin_x86_64-gcc-u-i386-x86_64/en-US/nightly/Darwin%2010.6.0/default/default/update.xml?force=1" into testUpdate = { 'product': 'Firefox', 'version': '4.0b13pre', 'buildID': '20110303122430', 'buildTarget': 'Darwin_x86_64-gcc-u-i386-x86_64', 'locale': 'en-US', 'channel': 'nightly', 'osVersion': 'Darwin%2010.6.0', 'distribution': 'default', 'distVersion': 'default', 'headerArchitecture': 'Intel', 'force': True, 'name': '' } """ # TODO support older URL versions. catlee suggests splitting on /, easy to use conditional assignment then query = url.copy() # TODO: Better way of dispatching different versions when we actually have to deal with them. if queryVersion == 3: query['name'] = AUS.identifyRequest(query) ua = request.headers.get('User-Agent') query['headerArchitecture'] = self.getHeaderArchitecture(query['buildTarget'], ua) query['force'] = (int(request.args.get('force', 0)) == 1) return query return {}