Skip to main content

The official Python client library for the Trovebox photo service

Project description

(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
        ],
        ...
        ...
    }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trovebox-0.5.tar.gz (13.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page