Openphoto - python
Find a file
sneakypete81 0a35922d12 Move config loader into the OpenPhoto class.
This allows config files to be used everywhere, not just from the commandline.
2013-05-04 13:15:51 +01:00
openphoto Move config loader into the OpenPhoto class. 2013-05-04 13:15:51 +01:00
scripts https://github.com/openphoto/openphoto-python/issues/4 2012-01-22 21:58:12 -08:00
tests Merge branch 'master' into logging 2013-04-02 21:10:42 +01:00
.gitignore Ignore test logs 2013-03-16 09:01:29 +00:00
LICENSE Fix #9 - include LICENSE file 2012-04-16 19:16:28 -04:00
README.markdown Move config loader into the OpenPhoto class. 2013-05-04 13:15:51 +01:00
setup.py Extended API to add pythonic classes/methods. See the updated README.markdown for examples 2012-08-28 18:59:33 +01:00

Open Photo API / Python Library

OpenPhoto, a photo service for the masses


Installation

python setup.py install

How to use the library

To use the library you need to first import openphoto then instantiate an instance of the class and start making calls.

You can use the library in one of two ways:

  • Direct GET/POST calls to the server
  • Access via Python classes/methods

Direct GET/POST:

from openphoto import OpenPhoto
client = OpenPhoto(host, consumerKey, consumerSecret, token, tokenSecret)
resp = client.get("/photos/list.json")
resp = client.post("/photo/62/update.json", tags=["tag1", "tag2"])

Python classes/methods

from openphoto import OpenPhoto
client = OpenPhoto(host, consumerKey, consumerSecret, token, tokenSecret)
photos = client.photos.list()
photos[0].update(tags=["tag1", "tag2"])
print photos[0].tags

The OpenPhoto Python class hierarchy mirrors the OpenPhoto 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

Using from the command line

When using the command line tool, you'll want to export your authentication credentials to the environment. The command line tool will look for the following config file in ~/.config/openphoto/default (the -c switch lets you specify a different config file):

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

Click here for instructions on getting credentials.

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

-h             # Display help text
-c config_file # Either the name of a config file in ~/.config/openphoto/ 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

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

# Upload a public photo to the host specified in ~/.config/openphoto/default
openphoto -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.openphoto.me (unauthenticated access)
openphoto -H current.openphoto.me -p -e /photo/62/view.json -F 'returnSizes=20x20'
{
    "code":200,
    "message":"Photo 62",
    "result":{
        "actor":"",
        "albums":[
            "1"
        ],
        ...
        ...
        "path20x20":"http://current.openphoto.me/photo/62/create/36c0a/20x20.jpg",
        "pathBase":"http://awesomeness.openphoto.me/base/201203/7ae997-Boracay-Philippines-007.jpg",
        "permission":"1",
        "photo20x20":[
            "http://current.openphoto.me/photo/62/create/36c0a/20x20.jpg",
            13,
            20
        ],
        ...
        ...
    }
}    

Getting your credentials

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.