Shrink a URL using an internal or external shortening service
This package generates short URLs when given longer ones. These can be generated by the app, with a 7 (by default) character short-name, or by an external provider, like bit.ly.
This is part of a toolset called Bambu Tools. It’s being moved from a namespace of bambu to its own ‘root-level’ package, along with all the other tools in the set. If you’re upgrading from a version prior to 2.0, please make sure to update your code to use bambu_urlshortener rather than bambu.urlshortener.
Install the package via Pip:
pip install bambu-urlshortener
Add it to your INSTALLED_APPS list:
INSTALLED_APPS = ( ... 'bambu_urlshortener' )
To use internal URL shortening - rather than a service like bit.ly - add the middleware to your settings:
MIDDLEWARE_CLASSES = ( ... 'bambu_urlshortener.middleware.ShortURLFallbackMiddleware' )
This should be added as close to the end of your middleware list as possible, as it looks for 404 responses and tries to find a URL short-name corresponding to the requested path.
Run manage.py syncdb or manage.py migrate to setup the database tables.
Simply call bambu_urlshortener.shorten, passing in the long URL.
There are two in-built shortening providers:
This default option, coupled with the middleware allows a web app to provide its own short URLs.
Calls the bit.ly API and returns a short URL. Specify the API key via the SHORTURL_TOKEN setting. Optionally set the SHORTURL_DOMAIN setting if you want to use a custom domain name.
Find me on Twitter (@iamsteadman) or visit my blog.