Пример #1
0
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