def get_browser_analysis(request, parms, isExternalLink): from vyperlogix.django import browsers from vyperlogix.classes.SmartObject import SmartObject d = SmartObject() d.browserName, d.browserVersion, d.isRobot = browsers.get_browser_name_version_from( request.META['HTTP_USER_AGENT'] if ( request.META.has_key('HTTP_USER_AGENT')) else '') d.isRunningLocal = isRunningLocal(request) d.isJavaScriptOptimized = ((d.browserName == 'Firefox') and (d.browserVersion >= 3.5)) or ( (d.browserName == 'Chrome') and (d.browserVersion >= 5.0)) d.isBrowserWebKit = ((d.browserName == 'WebKit') and (d.browserVersion >= 533.0)) d.isUsingAndroid = ((d.browserName in ['AndroidSafari', 'AndroidWebKit']) and (d.browserVersion >= 530.0)) d.isBrowserAcceptable = ( (d.browserName == 'Opera') and (d.browserVersion >= 9.8)) or (d.isBrowserWebKit) or (d.isUsingAndroid) d.isUsingUnsupportedBrowser = (not d.isJavaScriptOptimized) and ( not d.isBrowserAcceptable) referer = get_from_META(request, 'HTTP_REFERER', 'UNKNOWN REFERER') d.isUsingAdobeAIR = (referer == 'app:/VyperBlogAdmin.swf') d.isUsingSupportedBrowser = (not d.isUsingUnsupportedBrowser) or ( d.isUsingAdobeAIR) d.isUsingMSIE = (d.browserName == 'MSIE') expected_referer = '%s%s' % (request.META['SERVER_NAME'] if (request.META.has_key('SERVER_NAME')) else '', ':%s' % (request.META['SERVER_PORT'] if (request.META.has_key('SERVER_PORT')) and (request.META['SERVER_PORT'] != 80) else '')) isExternalLink = isExternalLink if (isinstance(isExternalLink, bool)) else False _referer = request.META['HTTP_REFERER'] if ( request.META.has_key('HTTP_REFERER')) else '' d.isRefererAcceptable = (_referer.find(expected_referer) > -1) if ( len(_referer) > 0) else isExternalLink return d