rendered paste bodyfrom cursesite.functions.functions import render_template
from django.http import HttpResponse
def check_browser(agent):
browsers = (('Firefox', 1.5), ('Opera', 9), ('MSIE', 7), ('Safari', 85),)
for b in browsers:
loc = agent.find(b[0])
if loc != -1:
start = loc+len(b[0])+1
end = agent.find(' ', start)
if end != -1:
version = agent[start:end]
else:
version = agent[start:]
if version[-1] == ';':
version = version[0:-1]
version = version.split('.')
version = "%s.%s" % (version[0], ''.join(version[1:]).split(',')[0])
if float(version) < float(b[1]):
valid = False
else:
valid = True
ec = {'browser_version': version, 'browser': b[0], 'valid': valid}
return ec
return {'browser': agent, 'browser_version': '', 'valid': True}
class ValidateBrowser(object):
def process_response(self, request, response):
#return response
if 'cgbcheck' in request.COOKIES or request.META['HTTP_USER_AGENT'] == 'Python-urllib/1.16' or request.GET.get('skipcheck', False) or request.META['HTTP_USER_AGENT'].find('Googlebot') != -1:
return response
response.set_cookie('cgbcheck', 1, None, None, '/', '.cursebeta.com')
agent = request.META['HTTP_USER_AGENT']
ec = check_browser(agent)
if 'REQUEST_URI' in request.META:
url = request.META['REQUEST_URI']
else:
url = '/'
ec.update({'url': url})
if ec:
return render_template(request, 'browsercheck.html', ec)