Openphoto - python
Find a file
2013-04-13 13:05:14 +01:00
openphoto Merge branch 'master' into transform 2013-04-13 13:05:14 +01:00
scripts https://github.com/openphoto/openphoto-python/issues/4 2012-01-22 21:58:12 -08:00
tests Merge branch 'master' into transform 2013-04-13 13:05:14 +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 Updated README with usage fixes and additional description of how the classes map to the OpenPhoto API 2012-12-21 18:23:42 +00: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 tools, you'll want to export your secrets to the environment. We suggest putting them in a file and sourcing it prior to running openphoto commands. Click here for instructions on getting credentials.

# env.sh
export consumerKey=your_consumer_key
export consumerSecret=your_consumer_secret
export token=your_access_token
export tokenSecret=your_access_token_secret

You'll need to source that file once for each terminal session.

source env.sh

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

-h # display help text
-H hostname # default=localhost
-e endpoint # default=/photos/list.json
-X method # default=GET
-F params # i.e. -F 'title=my title' -F 'tags=mytag1,mytag1'
-p # pretty print the json
-v # verbose output
--encode # base 64 encode the photo

Now you can run commands to the OpenPhoto API from your shell!

openphoto -H current.openphoto.me -p -e /photo/62/view.json -F 'returnSizes=20x20'
{
  "message" : "Photo 62",
  "code" : 200,
  "result" : {
    "tags" : [
      
    ],
    "id" : "62",
    "appId" : "current.openphoto.me",
    "pathBase" : "\/base\/201108\/1312956581-opmeqViHrD.jpg",
    "dateUploadedMonth" : "08",
    "dateTakenMonth" : "08",
    "exifCameraMake" : "",
    "dateTaken" : "1312956581",
    "title" : "Tomorrowland Main Stage 2011",
    "height" : "968",
    "description" : "",
    "creativeCommons" : "BY-NC",
    "dateTakenYear" : "2011",
    "dateUploadedDay" : "09",
    "longitude" : "4",
    "host" : "opmecurrent.s3.amazonaws.com",
    "hash" : "0455675a8c42148238b81ed1d8db655c45ae055a",
    "status" : "1",
    "width" : "1296",
    "dateTakenDay" : "09",
    "permission" : "1",
    "pathOriginal" : "\/original\/201108\/1312956581-opmeqViHrD.jpg",
    "size" : "325",
    "dateUploadedYear" : "2011",
    "views" : "0",
    "latitude" : "50.8333",
    "dateUploaded" : "1312956583",
    "exifCameraModel" : "",
    "Name" : "62",
    "path20x20" : "http:\/\/current.openphoto.me\/photo\/62\/create\/ceb90\/20x20.jpg"
  }
}

Getting your credentials

You can get your credentals by clicking on the arrow next to your email address once you're logged into your site and then clicking on settings. If you don't have any credentials then you can create one for yourself by going to /v1/oauth/flow. Once completed go back to the settings page and you should see the credential you just created