Source

tgext.mobilemiddleware / tgext / mobilemiddleware / middleware.py

from webob import Request
import re
from tg import redirect

class MobileMiddleware(object):
    def __init__(self, application, config):
        self.application = application

        mobile_re_config = config.get('mobile.agents', 'android|fennec|iemobile|iphone|ipod|ipad')
        self.mobile_re = re.compile(mobile_re_config, re.IGNORECASE)

    def __call__(self, environ, start_response):
        req = Request(environ)

        user_agent = req.headers.get('User-Agent', None)
        if user_agent and self.mobile_re.search(user_agent):
            req.is_mobile = True
        else:
            req.is_mobile = False

        resp = req.get_response(self.application)
        return resp(environ, start_response)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.