python library and wsgi middleware for mobile device detection
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs
src/mobi
tools
.hgignore
.hgtags
LICENSE.txt
MANIFEST.in
README.rst
setup.py

README.rst

mobi.devices

See documentation at http://mobi.infrae.com/.

mobi.devices is a set of tools that detect mobile user agents. It uses the WURFL database as well as data from the MIT mobile project.

It provides WSGI middleware that can tag a request with information about the device performing the request.

For best performance, please install pytc. It is not a package requirement since it is not available on all platforms.

Paster example configuration:

[app:yourapp]
# This part describes your application
# use = ...

[filter:mobidevicedetection]
# The entry point to use the classifier
use = egg:mobi.devices#classifier
# cache the classification on a client side cookie (default: true)
cookie_cache = true
# Configure caching (see beaker documentation)
cache.type = ext:memcached
cache.url = 127.0.0.1:11211
cache.lock_dir = /tmp/mobicache
# Data directory *required*. make sure directory is writable
# by the user that run the webserver
var = /var/mobi/db
# Path to wurfl file. by default it uses the one shipped with
# this package. however you should use the latest one.
wurfl_file = /var/mobi/wurfl.xml.gz

[filter:mobirouter]
use = egg:mobi.devices#router
# Redirect mobile devices that connect to infrae.com hostname
# to m.infrae.com
infrae.com = http://m.infrae.com/

[pipeline:main]
# This part configures the actual WSGI stack
pipeline = mobidevicedetection mobirouter yourapp

[server:main]
# This is the configuration for the paster web server.
# It must have the same name as the pipeline.
use = egg:Paste#http
host = 0.0.0.0
port = 8080
threadpool_workers = 7

If you are using Apache with rewrite rules that modify the path and you want the router to route on the original path, please add the following rule before any rewrite rule

RewriteRule ^(.*)$ - [E=ORIGINAL_PATH:$1]
RequestHeader set X_ORIGINAL_PATH %{ORIGINAL_PATH}e