only websocket-client-py3==0.13.1 works right with python3 at the moment, see https://github.com/liris/websocket-client/issues/84
configurable max number of instances of chrome simultaneously browsing pages (default=3); close and reopen connection to amqp every 15 minutes (consumer only); increase default browser wait to 60 sec
refactor umbra.py into controller.py and browser.py, improve class names
clean shutdown without draining entire amqp queue (only consume urls from amqp when browser activity isn't saturated)
oops, check in browser.py
improve helper utilities
not sure why /bin/ et al were in .gitignore... replace with a couple of useful things
remove unused param to __init__, avoid exception when on_request callback not provided
organize imports, tweak command line args
new helper utility to browse urls provided as command line args
oops, Browser.__init__ doesn't take client_id anymore
provide abbreviated api
sleep for 0.5 sec before attempting to reconnect to amqp; documentation tweaks
improve readme, mentioning archive-it per kristine
capitalize AMQP in description
add options --verbose, --exchange, --queue, --routing-key
make umbra amenable to clustering by using a pool of n browsers and removing the browser-clientId affinity (not useful currently since we start a fresh browser instance for each page browsed), and set prefetch_count=1 on amqp consumers to round-robin incoming urls among umbra instances
log ports chose for browsers, and give threads nice names to make logs easier to understand
sigterm and sigint both shutdown request shutdown, which stops consuming urls and waits for active browsers to finish; a second sigint/sigterm immediately shuts down active browsers
Merge pull request #23 from nlevitt/master

improve robustness, refactor, tweaks