Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.

Download
ActivePython
INSTALL>
pypm install trovebox

How to install trovebox

  1. Download and install ActivePython
  2. Open Command Prompt
  3. Type pypm install trovebox
 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
0.5 Available View build log
 
License
Apache 2.0
Imports
Lastest release
version 0.5 on Jan 9th, 2014

(Previously known as openphoto-python)

Build Status Python Package Index (PyPI)

This library works with any Trovebox server, either self-hosted, or using the hosted service at trovebox.com. It provides full access to your photos and metadata, via a simple Pythonic API.

Installation

pip install trovebox

Documentation

See the Trovebox API Documentation for full API documentation, including Python examples.

All development takes place at the openphoto-python GitHub site.

Credentials

For full access to your photos, you need to create the following config file in ~/.config/trovebox/default:

# ~/.config/trovebox/default
host = your.host.com
consumerKey = your_consumer_key
consumerSecret = your_consumer_secret
token = your_access_token
tokenSecret = your_access_token_secret

The config_file switch lets you specify a different config file.

To get your credentials:

  • Log into your Trovebox site
  • Click the arrow on the top-right and select 'Settings'
  • Click the 'Create a new app' button
  • Click the 'View' link beside the newly created app

Using the library

from trovebox import Trovebox
client = Trovebox()
photos = client.photos.list()
photos[0].update(tags=["tag1", "tag2"])
print(photos[0].tags)

The Trovebox Python class hierarchy mirrors the Trovebox API endpoint layout. For example, the calls in the example above use the following API endpoints:

  • client.photos.list() -> /photos/list.json
  • photos[0].update()   -> /photo/<id>/update.json

You can also access the API at a lower level using GET/POST methods:

resp = client.get("/photos/list.json")
resp = client.post("/photo/62/update.json", tags=["tag1", "tag2"])

API Versioning

It may be useful to lock your application to a particular version of the Trovebox API. This ensures that future API updates won't cause unexpected breakages. To do this, configure your Trovebox client as follows:

client.configure(api_version=2)

SSL Verification

If you connect to your Trovebox server over HTTPS, its SSL certificate is automatically verified. You can configure your Trovebox client to bypass this verification step:

client.configure(ssl_verify=False)

Commandline Tool

You can run commands to the Trovebox API from your shell!

These are the options you can pass to the shell program:

--help         # Display help text
-c config_file # Either the name of a config file in ~/.config/trovebox/ or a full path to a config file
-h hostname    # Overrides config_file for unauthenticated API calls
-e endpoint    # [default=/photos/list.json]
-X method      # [default=GET]
-F params      # e.g. -F 'title=my title' -F 'tags=mytag1,mytag2'
-p             # Pretty print the json
-v             # Verbose output
--version      # Display the current version information
Commandline Examples

Upload a public photo to the host specified in `~/.config/trovebox/default`:

trovebox -p -X POST -e /photo/upload.json -F 'photo=@/path/to/photo/jpg' -F 'permission=1'
{
    "code":201,
    "message":"Photo 1eo uploaded successfully",
    "result":{
        "actor":"user@example.com",
        "albums":[],
        ...
        ...
    }
}

Get a thumbnail URL from current.trovebox.com (unauthenticated access):

trovebox -h current.trovebox.com -p -e /photo/62/view.json -F 'returnSizes=20x20'
{
    "code":200,
    "message":"Photo 62",
    "result":{
        "actor":"",
        "albums":[
            "1"
        ],
        ...
        ...
        "path20x20":"http://current.trovebox.com/photo/62/create/36c0a/20x20.jpg",
        "pathBase":"http://awesomeness.trovebox.com/base/201203/7ae997-Boracay-Philippines-007.jpg",
        "permission":"1",
        "photo20x20":[
            "http://current.trovebox.com/photo/62/create/36c0a/20x20.jpg",
            13,
            20
        ],
        ...
        ...
    }
}

Subscribe to package updates

Last updated Jan 9th, 2014

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.