summaryrefslogtreecommitdiff
path: root/lib/mobile_middleware/mobile_detect.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mobile_middleware/mobile_detect.py')
-rw-r--r--lib/mobile_middleware/mobile_detect.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/mobile_middleware/mobile_detect.py b/lib/mobile_middleware/mobile_detect.py
new file mode 100644
index 0000000..6f5b998
--- /dev/null
+++ b/lib/mobile_middleware/mobile_detect.py
@@ -0,0 +1,31 @@
+from django.http import HttpResponseRedirect
+import re
+mobile_url = 'http://m.luxagraf.net/'
+agents_list = [
+ 'Nokia','bMOT','^LGE?b','SonyEricsson',
+ 'Ericsson','BlackBerry','DoCoMo','Symbian',
+ 'Windows CE','NetFront','Klondike','PalmOS',
+ 'PalmSource','portalmm','S[CG]H-','bSAGEM',
+ 'SEC-','jBrowser-WAP','Mitsu','Panasonic-',
+ 'SAMSUNG-','Samsung-','Sendo','SHARP-',
+ 'Vodaphone','BenQ','iPAQ','AvantGo',
+ 'Go.Web','Sanyo-','AUDIOVOX','PG-',
+ 'CDM[-d]','^KDDI-','^SIE-','TSM[-d]',
+ '^KWC-','WAP','^KGT [NC]','iPhone',
+]
+def is_mobile(user_agent):
+ for agent in agents_list:
+ if re.search(agent, user_agent):
+ return True
+ return False
+
+class MobileRedirect(object):
+ def process_request(self, request):
+ if not request.session.get('checked_ua', False):
+ if is_mobile(request.META['HTTP_USER_AGENT']):
+ request.session['checked_ua'] = True
+ return HttpResponseRedirect(mobile_url)
+ else:
+ # Make sure it doesn't try this again
+ request.session['checked_ua'] = True
+ return None \ No newline at end of file