aboutsummaryrefslogtreecommitdiff
path: root/middleware/oldbrowsermiddleware.py
blob: 6e19be1e27aae17da85cb397429e640cf13c1c1c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import re


class OldBrowserMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        user_agent = request.META.get('HTTP_USER_AGENT', '').lower()
        old_browser = False
        onclick = True
        browser_patterns = [
            'msie [1-8]',
            'firefox/[1-3]\.',
            'chrome/[1-9]\.',
            'safari/[1-5]\.',
            'opera/[1-9]\.',
            'classilla'
        ]
        onclick_patterns = [
            'msie [1-8]',
            'classilla'
        ]
        for pattern in browser_patterns:
            if re.search(pattern, user_agent):
                old_browser = True
                break
        
        for pattern in onclick_patterns:
            if re.search(pattern, user_agent):
                onclick = False
                break
        
        request.old_browser = old_browser
        request.onclick = onclick
        response = self.get_response(request)
        return response