Python wrapper for the OnionOO tor status API
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
onion_py
test/unit
.gitignore ignore build artifacts Aug 31, 2014
LICENSE.txt fixed year Apr 5, 2014
ONIONOO-LICENSE.txt
README.md Added a readme.md for github Mar 30, 2014
README.txt
setup.py

README.md

OnionPy

A comprehensive pure-Python wrapper for the OnionOO Tor status API, with memcached support to cache queried data.

Installing OnionPy

You can install onion-py manually by doing the following (requires setuptools!)::

git clone https://github.com/duk3luk3/onion-py.git
cd onion-py
#run tests if desired
PYTHONPATH=. python bin/onion.py test
sudo python setup.py install

For the optional memcached support, install pymemcache and six::

sudo pip install six
sudo pip install https://github.com/pinterest/pymemcache.git

The package is also on Pypi.

Beware: OnionPy has been developed and tested exclusively with Python 3. Please let Python 2 rest in peace forevermore. OnionPy is compatible with Python 2.7 upwards.

Usage

>>> from onion_py.manager import Manager
>>> from onion_py.caching import OnionSimpleCache
>>> manager = Manager(OnionSimpleCache())
>>> s = manager.query('summary', limit=4)
>>> s.relays[0].fingerprint
'695D027F728A3B95D0D7F6464D63F82229BFA361'
>>> s.relays[0].nickname
'GREATWHITENORTH'

Accepted Queries

Summary, details, bandwidth, weights, clients, uptime

>>> s = manager.query('summary', limit=4)
>>> s = manager.query('details', limit=4)
>>> s = manager.query('bandwidth', limit=4)
>>> s = manager.query('weights', limit=4)
>>> s = manager.query('clients', limit=4)
>>> s = manager.query('uptime', limit=4)

License

BSD 3-clause. See LICENSE.
Portions of this work obviously belong to to OnionOO and therefore the Tor Project. See ONIONOO-LICENSE.