def process_response(self, request, response):
        if request.method.lower() not in settings.REQUEST_VALID_METHOD_NAMES:
            return response

        if response.status_code < 400 and settings.REQUEST_ONLY_ERRORS:
            return response

        ignore = patterns(False, *settings.REQUEST_IGNORE_PATHS)
        if ignore.resolve(request.path[1:]):
            return response

        if request.is_ajax() and settings.REQUEST_IGNORE_AJAX:
            return response

        if request.META.get('REMOTE_ADDR') in settings.REQUEST_IGNORE_IP:
            return response

        if getattr(request, 'user', False):
            if request.user.username in settings.REQUEST_IGNORE_USERNAME:
                return response

        r = Request()
        r.from_http_request(request, response)

        return response
browsers = patterns(('Unknown', {}),
    # Browsers
    (r'AOL (?P<version>[\d+\.\d+]+)', 'AOL'),
    (r'Mozilla/(?P<mozilla_version>[-.\w]+) \(compatible; ( ?)MSIE (?P<msie_version>[-.\w]+);( ?)( ?)America Online Browser (?P<version>[-.\w]+);', 'AOL'),
    (r'Camino/(?P<version>[-.\w]+)', 'Camino'),
    (r'Chrome/(?P<version>[-.\w]+)', 'Google Chrome'),
    (r'Firefox(/(?P<version>[-.\w]+)?)', 'Firefox'),
    (r'Mozilla/(?P<mozilla_version>[-.\w]+) \(compatible; ( ?)MSIE (?P<version>[-.\w]+);( ?)( ?)(Win|Mac)', 'Internet Explorer'),
    (r'Konqueror/(?P<version>[-.\w]+)', 'Konqueror'),
    (r'Opera( |/)(?P<version>[-.\w]+)', 'Opera'),
    (r'OmniWeb(/(?P<version>[-.\w]+)?)', 'OmniWeb'),
    (r'Safari/(?P<version>[-.\w]+)', 'Safari'),
    (r'(Netscape([\d]?)|Navigator)/(?P<version>[-.\w]+)', 'Netscape'),
    (r'Wget/(?P<version>[-.\w]+)', 'Wget'),

    (r'Minefield(/(?P<version>[-.\w]+)?)', 'Firefox'),  # Firefox nightly trunk builds
    (r'Shiretoko(/(?P<version>[-.\w]+)?)', 'Firefox'),  # Firefox testing browser
    (r'GranParadiso(/(?P<version>[-.\w]+)?)', 'Firefox'),  # Firefox testing browser
    (r'Iceweasel(/(?P<version>[-.\w]+)?)', 'Firefox'),  # Debian re-branded firefox

    # RSS Reader
    (r'(NetNewsWire|NewsGatorOnline)/(?P<version>[-.\w]+)', 'NetNewsWire'),
    (r'Feedfetcher-Google', 'Google Reader'),

    # Bots
    (r'Googlebot', 'Google'),
    (r'Yahoo! Slurp', 'Yahoo'),
    (r'msnbot', 'MSN Bot'),
    (r'(Baiduspider|BaiduImagespider)', 'Baiduspider'),
    (r'Ask Jeeves', 'Ask Jeeves'),
    (r'FollowSite', 'FollowSite'),
    (r'WebAlta Crawler', 'WebAlta Crawler'),
    (r'ScoutJet', 'ScoutJet'),
    (r'SurveyBot', 'domaintools.com'),
    (r'Gigabot', 'Gigabot'),
    (r'Speedy Spider', 'entireweb'),
    (r'discobot', 'Discovery Engine'),
    (r'Purebot(/(?P<version>[-.\w]+)?);', 'Purity search'),
    (r'Yandex(/(?P<version>[-.\w]+)?)', 'Yandex'),
    (r'PostRank(/(?P<version>[-.\w]+)?)', 'PostRank'),
    (r'Mozilla/(?P<mozilla_version>[-.\w]+) \(compatible; DotBot/(?P<version>[-.\w]+); http://www.dotnetdotcom.org/, [email protected]\)', 'Dotbot'),
    (r'IrssiUrlLog(/(?P<version>[-.\w]+)?)', 'irssi'),
    (r'Linguee Bot \(http://www.linguee.com/bot; [email protected]\)', 'Linguee'),
    (r'Sphider', 'Sphider'),

    # Other
    (r'Mediapartners-Google', 'Google Ads'),
    (r'Apple-PubSub', 'Apple-PubSub'),
    (r'Python-urllib', 'Python'),
)
Exemple #3
0
browsers = patterns(
    ('Unknown', {}),
    # Browsers
    (r'AOL (?P<version>[\d+\.\d+]+)', 'AOL'),
    (r'Mozilla/(?P<mozilla_version>[-.\w]+) \(compatible; ( ?)MSIE (?P<msie_version>[-.\w]+);( ?)( ?)America Online Browser (?P<version>[-.\w]+);',
     'AOL'),
    (r'Camino/(?P<version>[-.\w]+)', 'Camino'),
    (r'Chrome/(?P<version>[-.\w]+)', 'Google Chrome'),
    (r'Firefox(/(?P<version>[-.\w]+)?)', 'Firefox'),
    (r'Mozilla/(?P<mozilla_version>[-.\w]+) \(compatible; ( ?)MSIE (?P<version>[-.\w]+);( ?)( ?)(Win|Mac)',
     'Internet Explorer'),
    (r'Konqueror/(?P<version>[-.\w]+)', 'Konqueror'),
    (r'Opera( |/)(?P<version>[-.\w]+)', 'Opera'),
    (r'OmniWeb(/(?P<version>[-.\w]+)?)', 'OmniWeb'),
    (r'Safari/(?P<version>[-.\w]+)', 'Safari'),
    (r'(Netscape([\d]?)|Navigator)/(?P<version>[-.\w]+)', 'Netscape'),
    (r'Wget/(?P<version>[-.\w]+)', 'Wget'),
    (r'Minefield(/(?P<version>[-.\w]+)?)',
     'Firefox'),  # Firefox nightly trunk builds
    (r'Shiretoko(/(?P<version>[-.\w]+)?)',
     'Firefox'),  # Firefox testing browser
    (r'GranParadiso(/(?P<version>[-.\w]+)?)',
     'Firefox'),  # Firefox testing browser
    (r'Iceweasel(/(?P<version>[-.\w]+)?)',
     'Firefox'),  # Debian re-branded firefox

    # RSS Reader
    (r'(NetNewsWire|NewsGatorOnline)/(?P<version>[-.\w]+)', 'NetNewsWire'),
    (r'Feedfetcher-Google', 'Google Reader'),

    # Bots
    (r'Googlebot', 'Google'),
    (r'Yahoo! Slurp', 'Yahoo'),
    (r'msnbot', 'MSN Bot'),
    (r'(Baiduspider|BaiduImagespider)', 'Baiduspider'),
    (r'Ask Jeeves', 'Ask Jeeves'),
    (r'FollowSite', 'FollowSite'),
    (r'WebAlta Crawler', 'WebAlta Crawler'),
    (r'ScoutJet', 'ScoutJet'),
    (r'SurveyBot', 'domaintools.com'),
    (r'Gigabot', 'Gigabot'),
    (r'Speedy Spider', 'entireweb'),
    (r'discobot', 'Discovery Engine'),
    (r'Purebot(/(?P<version>[-.\w]+)?);', 'Purity search'),
    (r'Yandex(/(?P<version>[-.\w]+)?)', 'Yandex'),
    (r'PostRank(/(?P<version>[-.\w]+)?)', 'PostRank'),
    (r'Mozilla/(?P<mozilla_version>[-.\w]+) \(compatible; DotBot/(?P<version>[-.\w]+); http://www.dotnetdotcom.org/, [email protected]\)',
     'Dotbot'),
    (r'IrssiUrlLog(/(?P<version>[-.\w]+)?)', 'irssi'),
    (r'Linguee Bot \(http://www.linguee.com/bot; [email protected]\)',
     'Linguee'),
    (r'Sphider', 'Sphider'),

    # Other
    (r'Mediapartners-Google', 'Google Ads'),
    (r'Apple-PubSub', 'Apple-PubSub'),
    (r'Python-urllib', 'Python'),
)