From bd1f82b896ee9de243100ed5577db2636d208b91 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sat, 4 May 2013 19:35:45 +0200 Subject: [PATCH 01/21] Added Python example --- docs/api/GetPhoto.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/api/GetPhoto.markdown b/docs/api/GetPhoto.markdown index 5a6b56d..b60a8b0 100644 --- a/docs/api/GetPhoto.markdown +++ b/docs/api/GetPhoto.markdown @@ -10,6 +10,7 @@ Get Photo 1. [Examples][examples] * [Command line][example-cli] * [PHP][example-php] + * [Python][example-python] 1. [Response][response] * [Sample][sample] @@ -53,6 +54,14 @@ _Authentication: optional_ $client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret); $response = $client->get("/photo/b/view.json"); + +#### Python (using [openphoto-python][openphoto-python]) + + client = openphoto.OpenPhoto() + photo = client.photos.list()[0] # Returns the first photo from the list + photo.view(returnSizes="20x20") # Updates the photo object with the requested size + print photo.path20x20 + ---------------------------------------- @@ -109,8 +118,10 @@ The response is in a standard [response envelope](http://theopenphotoproject.org [examples]: #examples [example-cli]: #example-cli [example-php]: #example-php +[example-python]: #example-python [response]: #response [sample]: #sample [photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration [ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes [openphoto-php]: https://github.com/photo/openphoto-php +[openphoto-python]: https://github.com/photo/openphoto-python From eb93b56ae460c75110658aa4cc86581d7a9c99cc Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sat, 4 May 2013 19:43:36 +0200 Subject: [PATCH 02/21] Added Python example to GetPhotoNextPrevious --- docs/api/GetPhotoNextPrevious.markdown | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/api/GetPhotoNextPrevious.markdown b/docs/api/GetPhotoNextPrevious.markdown index d5e9207..d8a0fad 100644 --- a/docs/api/GetPhotoNextPrevious.markdown +++ b/docs/api/GetPhotoNextPrevious.markdown @@ -10,6 +10,7 @@ Get Next/Previous Photo 1. [Examples][examples] * [Command line][example-cli] * [PHP][example-php] + * [Python][example-python] 1. [Response][response] * [Sample][sample] @@ -53,6 +54,15 @@ _Authentication: optional_ $client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret); $response = $client->get("/photo/b/nextprevious.json"); + +#### Python (using [openphoto-python][openphoto-python]) + + client = openphoto.OpenPhoto() + photo = client.photos.list()[1] # Returns the second photo in the list + print photo.next_previous() + + {'previous': [], 'next': []} + ---------------------------------------- @@ -152,8 +162,10 @@ The response is in a standard [response envelope](http://theopenphotoproject.org [examples]: #examples [example-cli]: #example-cli [example-php]: #example-php +[example-python]: #example-python [response]: #response [sample]: #sample [photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration [ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes [openphoto-php]: https://github.com/photo/openphoto-php +[openphoto-python]: https://github.com/photo/openphoto-python From 9c216ec901636d86a6b43666c34c357dd3b648c3 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sat, 4 May 2013 19:48:26 +0200 Subject: [PATCH 03/21] Add example Python response --- docs/api/GetPhoto.markdown | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api/GetPhoto.markdown b/docs/api/GetPhoto.markdown index b60a8b0..23c8c77 100644 --- a/docs/api/GetPhoto.markdown +++ b/docs/api/GetPhoto.markdown @@ -62,6 +62,8 @@ _Authentication: optional_ photo.view(returnSizes="20x20") # Updates the photo object with the requested size print photo.path20x20 + http://current.openphoto.me/photo/c7/create/baad9/20x20.jpg + ---------------------------------------- From f470635b14ddb9187270defd9d369f9e8917de47 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sat, 4 May 2013 19:55:27 +0200 Subject: [PATCH 04/21] Add Python example to GetPhotos --- docs/api/GetPhotos.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/api/GetPhotos.markdown b/docs/api/GetPhotos.markdown index 43d1c14..c4defe1 100644 --- a/docs/api/GetPhotos.markdown +++ b/docs/api/GetPhotos.markdown @@ -10,6 +10,7 @@ Get Photos 1. [Examples][examples] * [Command line][example-cli] * [PHP][example-php] + * [Python][example-python] 1. [Response][response] * [Sample][sample] @@ -56,6 +57,13 @@ _Authentication: optional_ $client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret); $response = $client->get("/photos/list.json", array('tags' => 'sunnyvale')); + +#### Python (using [openphoto-python][openphoto-python]) + + client = openphoto.OpenPhoto() + print client.photos.list(tags="sunnyvale") + + [, ] ---------------------------------------- @@ -142,8 +150,10 @@ The response is in a standard [response envelope](http://theopenphotoproject.org [examples]: #examples [example-cli]: #example-cli [example-php]: #example-php +[example-python]: #example-python [response]: #response [sample]: #sample [photogeneration]: http://theopenphotoproject.org/documentation/faq/PhotoGeneration [ReturnSizes]: http://theopenphotoproject.org/documentation/faq/ReturnSizes [openphoto-php]: https://github.com/photo/openphoto-php +[openphoto-python]: https://github.com/photo/openphoto-python From 43771afa83b58273db28a1ffc8de514e0fe7b39d Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Tue, 14 May 2013 19:13:43 +0200 Subject: [PATCH 05/21] Added Python example --- docs/api/GetTags.markdown | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/api/GetTags.markdown b/docs/api/GetTags.markdown index 0ee243e..e0950cd 100644 --- a/docs/api/GetTags.markdown +++ b/docs/api/GetTags.markdown @@ -10,6 +10,7 @@ Get Tags 1. [Examples][examples] * [Command line][example-cli] * [PHP][example-php] + * [Python][example-python] 1. [Response][response] * [Sample][sample] @@ -50,6 +51,14 @@ _None_ $client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret); $response = $client->get("/tags/list.json"); + +#### Python (using [openphoto-python][openphoto-python]) + + client = openphoto.OpenPhoto() + client.tags.list() + + [, , ...] + ---------------------------------------- @@ -102,6 +111,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org [examples]: #examples [example-cli]: #example-cli [example-php]: #example-php +[example-python]: #example-python [response]: #response [sample]: #sample [openphoto-php]: https://github.com/photo/openphoto-php +[openphoto-python]: https://github.com/photo/openphoto-python From 602e8c2698445ca2e3a2148de9e2cb0512d07f23 Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Thu, 28 Mar 2013 21:30:11 -0300 Subject: [PATCH 06/21] created Extend page --- docs/faq/Extend.markdown | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 docs/faq/Extend.markdown diff --git a/docs/faq/Extend.markdown b/docs/faq/Extend.markdown new file mode 100644 index 0000000..311e3ce --- /dev/null +++ b/docs/faq/Extend.markdown @@ -0,0 +1,25 @@ +## Extend Trovebox + +You can do more with your Trovebox photo than upload and organize photos. You may already be familiar with storing your photos in your own storage space, importing photos from other sites, and uploading photos with our mobile apps. Here are a few more tools to make your Trovebox site even more useful. + +### See How Many People Visit Your Site +If you’ve wondered how many people visit your Trovebox site, you can install Google Analytics and start gathering stats. Get started in a few short steps. + +* Log into [Google Analytics](https://google.com/analytics/) and create a new site to track. +* In the admin section, find your tracking ID under the tracking info section. Make a note of this. +* In your Trovebox site settings, click Configure next to Google Analytics and enter your tracking ID. +* You can view your site stats anytime at Google Analytics. + +Don’t like Google Analytics? No problem. We also support site stats through the self-hosted Piwik. + +### Import Photos From Other Sites +Trovebox currently supports imports from Facebook, Flickr, and Instagram, but what about those other photo sites out there? [Pi.pe](http://pi.pe), a media distribution gateway, has some of those covered. + +**If you have a free account, you may go over the 100 photos/month limit with this upload.** + +Pi.pe [has an excellent guide](http://blog.pixelpipe.com/2012/12/10/configuring-openphoto-as-a-pi-pe-service/) on getting started that goes into more detail. We’ll let them take it from here. + +### Use Your Trovebox Photos on Your Blog +If you use WordPress, you can use your individual Trovebox images on your blog. [Download our plugin](https://wordpress.org/extend/plugins/openphoto/) to your WordPress site and go to OpenPhoto in settings to configure it. Enter your site URL and which photo size you’d like to use when inserting an image in your post, and enjoy inserting your Trovebox images into posts. + +The Trovebox source and API are open source, so if you want to build something, [get started](https://trovebox.com/documentation). Email us at support@trovebox.com if you’d like to see your creation here. From 125d7c523c50a4fb2ee1e61707ef4f2490badb02 Mon Sep 17 00:00:00 2001 From: sushimustwrite Date: Fri, 19 Apr 2013 17:53:22 -0400 Subject: [PATCH 07/21] faq changes --- docs/faq/AccountManagement.markdown | 2 +- docs/faq/MobileApps.markdown | 10 ++++++++-- docs/faq/PhotoManagement.markdown | 28 ++++++++++++++++++---------- docs/faq/PhotoSharing.markdown | 13 ++++++++++--- docs/faq/ProAccounts.markdown | 15 +++++++++++---- docs/faq/Storage.markdown | 21 +++++++++++++++++---- 6 files changed, 65 insertions(+), 24 deletions(-) diff --git a/docs/faq/AccountManagement.markdown b/docs/faq/AccountManagement.markdown index 740d050..e03c9b8 100644 --- a/docs/faq/AccountManagement.markdown +++ b/docs/faq/AccountManagement.markdown @@ -1,7 +1,7 @@ Account Management ======================= -## How do I create an account? +## How do I create a Trovebox account? Visit trovebox.com and click the Sign Up button. Select a username for your Trovebox site along with a password. ## How do I log in? diff --git a/docs/faq/MobileApps.markdown b/docs/faq/MobileApps.markdown index 13a8266..fabded5 100644 --- a/docs/faq/MobileApps.markdown +++ b/docs/faq/MobileApps.markdown @@ -2,20 +2,26 @@ The Trovebox Mobile Apps ======================= ## What phones are supported? -Trovebox has mobile apps for iPhone and Android. You can download them in the App Store (iOS) or Play Store (Android). +Trovebox's mobile apps are available for iPhone and Android. You can download them in the App Store (iOS) or Play Store (Android). ## What can I do with the Trovebox mobile apps? +Lots of things. To name a few: + * Create an Trovebox account * Upload photos to your Trovebox site +* View photos in your gallery, by album, or by tag * Add titles, descriptions, privacy settings, and tags * Share photos via email, Twitter, and Facebook * Add filters to your photos +* Purchase a monthly Pro account plan (iPhone only, Android coming soon) ## I have a limited data plan. Can I limit uploads to wifi only? Sure. ## What is Sync? -Sync lets you view the photos on your phone and select which ones to upload. +Sync lets you view the photos on your phone and select which ones to upload. Think of it as batch upload for your phone. ## Can I automatically upload taken photos to Trovebox? Yes. This is an experimental feature for Android. + diff --git a/docs/faq/PhotoManagement.markdown b/docs/faq/PhotoManagement.markdown index 4705e9c..ff2eeaf 100644 --- a/docs/faq/PhotoManagement.markdown +++ b/docs/faq/PhotoManagement.markdown @@ -4,8 +4,22 @@ Photo Management ## How do I upload a photo? Go to your Trovebox site (it'll look like yourusername.trovebox.com) and click Upload. Click Add Photos and add the photos you'd like to upload. You can also add attributes that'll apply to all the photos uploaded in that batch, such as a tag, an album, a privacy setting, or a license. +## How large can my photo be? +We support photo files of up to 30MB. + +## What file types are supported? +Currently we support .jpg, .gif, and .png files. We want to support more file types in the future, so let us know what you'd like to see. + +## How do I edit multiple photos at once? +Visit your Gallery at your Trovebox site. From there, hover over the photo(s) you want to edit and click the pin that appears. Click Batch Edit and select the detail you want to edit, change the detail, and click Submit. + +## Wait, Batch Edit? How does that work? +Batch Edit lets you edit multiple photos at once. Currently you can add or remove tags or albums. You can also edit privacy settings or delete a set of photos. + +To use Batch Edit, visit your gallery and hover over the photos you want to edit. Click the pushpins of each photo. You can also select all, which will select all the visible photos. Then select Batch Edit and edit away. + ## How do I delete a photo? -Visit your gallery or an album. Hover over the photo you want to delete. You'll see the title of the photo along with a few icons. Click the trash can to delete the photo. +Visit your gallery or an album. Hover over the photo you want to delete. You'll see the title of the photo along with a few icons. Click the trash can to delete the photo, then confirm you want to delete the photo. ## How do I change the privacy setting of a photo? You can do this by visiting the individual photo or by finding that photo in a gallery or album. In gallery or album view, hover over the photo you want to change to private (or public). You'll see the title of the photo along with a few icons, including a lock. In full detail view, you'll see the photo's privacy on the right side with the rest of the photo info. An unlocked lock indicates a public photo, while a locked one means the photo is private. Click the lock to toggle the privacy setting. @@ -13,14 +27,11 @@ You can do this by visiting the individual photo or by finding that photo in a g ## How do I edit the title or description of a photo? Visit the photo whose info you want to edit, then click the title or description. Enter your new title or description in the box that appears and save. You can also edit the title directly from the gallery or album view. -## How do I share a photo? -While viewing your photo gallery or an individual photo, click Share (or the curved right-pointing arrow). Select whether you want to share via email, Twitter, or Facebook, and share away. - ## How do I download an individual photo? You can download a photo directly if you or the user has enabled that option in the settings page. To do so, view the full details of the photo you want to download and click the Download link on the right hand side. -## Where does the image for my user photo come from? How can I change it? -We use Gravatar to set your original user photo, and you can change it across Gravatar by visiting their site and changing your photo there. If you'd like to set one of your uploaded photos as your user photo, visit your gallery, find a photo you'd like to use, and select the human silhouette. +## How can I change my user photo? +If you'd like to set one of your uploaded photos as your user photo, visit your gallery, find a photo you'd like to use, and select the person icon. ## What are albums? How do they work? An album is a collection of photos grouped around a theme of your choice. This lets you share many photos with friends or browse your own photos more easily. Albums can be public or private on your albums page. @@ -32,7 +43,4 @@ While you're logged into your Trovebox site, visit Albums. Select Create Album, You can add a photo to an album by hovering over the photo in your gallery and pinning it. Then select Batch Edit and Add to Album. Select the album you want to add the photo to and save. ## How do I delete an album? -Hover over the album you want to delete in the albums page and click the trash can. The photos in that album are still safe. - -## How do I edit multiple photos at once? -Visit your Gallery at your Trovebox site. From there, hover over the photo(s) you want to edit and click the pin that appears. Click Batch Edit and select the detail you want to edit, change the detail, and click Submit. +Hover over the album you want to delete in the albums page and click the trash can. Confirm that you want to delete the album. The photos in that album are still safe. diff --git a/docs/faq/PhotoSharing.markdown b/docs/faq/PhotoSharing.markdown index 40f56c8..5266ef8 100644 --- a/docs/faq/PhotoSharing.markdown +++ b/docs/faq/PhotoSharing.markdown @@ -5,13 +5,14 @@ Photo Sharing You can share a photo by clicking the arrow button at the photo's page or in the gallery. You'll then see the options to share the photo. ## Where can I share a photo to? -Right now we support sharing via email, Facebook, or Twitter. +Right now we support sharing via email, Facebook, or Twitter. We want to add more sites, so let us know where youyour photos to. ## Can I share an album instead of a photo? Yes. Click the Share button that appears when hovering over an album's summary, then share in the same way you'd share a photo. -## How do I share a private photo? -You can share a private photo in the same way that you'd share a public photo. When you share a private photo a sharing token gets added to the photo URL, which a recipient can use to view the photo without logging in. +## How do I share a private photo or album? +You can share a private photo in the same way that you'd share a public photo or album. When you share a private item, a sharing token gets added to the photo URL. The recipient can then use the full URL to view the photo without +logging in. ## Wait, sharing tokens? How do those work? When you share a photo, a sharing token in the photo's URL enables other users to view your photo. These sharing tokens expire after a time period that you'll soon be able to set yourself. @@ -21,3 +22,9 @@ The recipient will be able to see the album and the contents of the album, even ## Can I set a custom expiration date for a sharing token? Soon you'll be able to. + +## I changed my mind about sharing a photo. How can I revoke its sharing token? +Soon you'll be able to manage all your sharing tokens from a separate page, which will let you revoke individual tokens. + +## Can I share a photo's link via HTML? +Not yet. We're working on this. diff --git a/docs/faq/ProAccounts.markdown b/docs/faq/ProAccounts.markdown index a124141..bcb1145 100644 --- a/docs/faq/ProAccounts.markdown +++ b/docs/faq/ProAccounts.markdown @@ -3,14 +3,14 @@ Pro Accounts ## What do I get with a Trovebox Pro account? With a pro account, you get: + * Unlimited photo uploads (Free users get 100 photo uploads/month) * Import from Flickr as well as Facebook and Instagram (Picasa and Smugmug coming soon) * Switch storage options as many times as you wish -* Enhanced security with SSL -* Ability to add multiple users to your account +* Collaborators on your account * Top level domain support at yourdomain.com -Check out our chart for the full breakdown. +Check out our plans chart for the full breakdown. ## How much does a Pro account cost? A Pro account costs $29.99 a year. @@ -30,6 +30,10 @@ Nope. We'll alert you when your Pro account is going to renew. ## What happens if my Pro subscription ends? Don't panic! Nothing has been deleted. You resume using a free account, though you're now subject to the free account limitations. You can still access all your photos, free or pro. +## What can collaborators do with my account? +Collaborators can add photos, edit photos, delete photos--just about anything you can do except delete your account. When you add them as a collaborator they can log in with that email via Mozilla Persona. Soon they'll be able to +log in via the regular Trovebox login. + ## How do I add a top level domain? Adding a top level domain to your Trovebox site is currently all manual on our end, so there are two steps to take. First, email support@trovebox.com with the domain or subdomain you'd like to add to your Trovebox site. @@ -41,5 +45,8 @@ After we've replied and confirmed that we've set up your domain, you'll need to It'll take up to 24 hours for your changes to take effect. -## How do I add Twitter cards for my custom domain? +## How do I add Twitter cards for my domain? Twitter cards are added per domain, so you have to apply for them separately for your own domain. + +## My needs go far beyond what a Pro account provides. Can I get even more? +We're working on a [https://trovebox.com/organizations](plan for organizations). Email us at [mailto:support@trovebox.com](support@trovebox.com) if you're interested. diff --git a/docs/faq/Storage.markdown b/docs/faq/Storage.markdown index c643fc8..67547f1 100644 --- a/docs/faq/Storage.markdown +++ b/docs/faq/Storage.markdown @@ -2,7 +2,10 @@ Photo Storage ======================= ## Where can I store my photos? -Right now Trovebox supports Amazon S3, Box.com, Dropbox, CX.com, and DreamHost DreamObjects. +Right now Trovebox supports Amazon S3, Box.com, Dropbox, CX.com, DreamHost DreamObjects, and the Internet Archive. You can also use our storage if you don't want to use your own. + +## What if I don't choose my own storage provider upon signup. +Then your photos get stored in our own S3 bucket. You can change this anytime. ## How do I switch where my photos are stored? Visit the storage migration page while logged in, select where you'd like your photos to go, and follow the instructions. Note that this is a Pro account option. @@ -10,11 +13,21 @@ Visit the storage migration page while ## How can I import my photos? You can import your photos through the Upload photos page when you're logged into Trovebox. At the bottom of the Upload photos page are links to import photos from Flickr, Facebook, and Instagram. Select the site(s) you'd like to import from and follow the instructions. -## Can I keep uploading to another photo site and have that photo automatically show up in Trovebox? +## Can I keep uploading to another photo site and have that photo automatically show up in Trovebox? What about uploading to Trovebox and having a photo show up elsewhere? Not directly through Trovebox, but you can use sites like ifttt or Pixelpipe that will automatically upload a picture to Trovebox when you upload a picture somewhere else (or vice versa). ## Is there a limit to how many photos I can upload? -If you're a free user you can upload up to 100 photos per month. Pro account holders get unlimited uploads. +If you're a free user you can upload up to 100 photos per month. Pro account holders get unlimited uploads, though your storage provider may impose space limits. If you're using our storage then everything is unlimited. + +## Can I sync photos to Trovebox from an existing storage account? +Not yet. It's on our feature wishlist, though. -## If I'm a free user, do I lose access to my photos after using a certain amount of space or hitting my montly upload limit? +## If I'm using the Internet Archive as my storage, does that mean all my photos have to be public? +Not on your Trovebox site! However, the Internet Archive offers free storage for the sake of the public. Right now you can mark a photo as private on your site and it'll show up as public in the archive for archiving purposes. +We're working on this. + +## If I'm a free user, do I lose access to my photos after using a certain amount of space or hitting my monthly upload limit? Nope. Your photos are yours, and you still have access to everything you've previously uploaded. + +## Do I get to access my original photos? +Yes. Free or pro, you'll always have access to the original photos uploaded. From fd5301c9a048a17c9ee32d1b6ed853ccf3eb0c60 Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Sun, 21 Apr 2013 19:55:41 -0300 Subject: [PATCH 08/21] Updated docs contrib guide, corrected formatting --- docs/contribute/documentation.markdown | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/contribute/documentation.markdown b/docs/contribute/documentation.markdown index ea43a9f..a2f0eaa 100644 --- a/docs/contribute/documentation.markdown +++ b/docs/contribute/documentation.markdown @@ -7,21 +7,22 @@ We're always looking for writers to contribute to our documentation. If you can ## Deciding what to contribute We currently have documentation for the API and setting up OpenPhoto on a variety of servers (including shared hosting services), along with FAQs for the hosted and self-hosted sites. You can contribute by adding to these guides or by adding your own guide--for example, how to install OpenPhoto on your webhost. Your contributions will help users of the present and future who have the same questions. -All of this documentation is in the documentation repository under the docs folder. We have issues tagged documentation on Github, but every area of the project can benefit from better documentation. Choose something you know about and start writing. +All of this documentation is in the documentation repository under the docs folder. We have issues tagged documentation on the frontend repository as well, but every area of the project can benefit from better documentation. Choose something you know about that isn't well-documented here and start writing. -## Forking the OpenPhoto repository -Before you start writing, you need to fork the documentation repository. You can fork the repository right from the main OpenPhoto repository page by clicking the "Fork" button. If you plan on writing your documentation directly in Github, that's all you need to do. If you want to work from your local copy of the repository, Github explains how to clone a repository to your own machine. +## Forking the Documentation repository +Before you start writing, you need to fork the documentation repository. You can fork the repository right from the main OpenPhoto repository page by clicking the "Fork" button. If you plan on writing your documentation directly in Github, that's all you need to do. If you want to work from a copy of the repository on your computer, Github explains how to clone a repository to your own machine. ## Writing the documentation -We write our documentation in Github Standard Markdown and save the files as .Markdown files. If you're familiar with Markdown and Github, go ahead and fork OpenPhoto, then write your contribution in a text editor of your choice. If you're not, you may want to take a look at Github's explanation of Markdown as well as the source of OpenPhoto's documentation pages on Github. +We write our documentation in Github Standard Markdown and save the files as .Markdown files. If you're familiar with Markdown and Github, go ahead and fork [our documentation repository](https://github.com/photo/documentation), then write your contribution in a text editor of your choice. If you're not, you may want to take a look at Github's explanation of Markdown as well as the source of OpenPhoto's documentation pages on Github. Or if you're working from the Github site, press **m** on your keyboard when editing a page to see a cheatsheet. A few things to keep in mind while writing the documentation: -* Remember that users of all skill levels will be reading the documentation. What you write should be accessible to all of them. This includes staying beginner- and expert-friendly, remaining gender-neutral, and being friendly and informative. + +* Remember that users of all skill levels will be reading the documentation. What you write should be accessible to all of them. This includes staying friendly to users of all levels, remaining gender-neutral, and being friendly and informative. * Use correct grammar and spelling. Here's a grammar guide if you need a refresher. * Stay away from slang and other terms that don't translate well. This is for a couple for a reasons. First, OpenPhoto has an international userbase, and English may not be everyone's first language. Second, this makes translating easier when the time comes. ## Committing your documentation -When committing your documentation it's important to reference the GitHub issue you're fixing, if applicable. You can do it by adding a _#_ followed by the issue number. +When committing your documentation it's important to reference the GitHub issue you're fixing, if applicable. You can do it by adding a _#_ followed by the issue number. If you're editing a copy on your own machine, you can commit like this: # To simply reference an issue with a commit do this git commit -m 'Addressing the foobar component but not yet finished. #123' @@ -29,11 +30,15 @@ When committing your documentation it's important to reference the GitHub issue # To commit and close an issue do this git commit -m 'Wrote the longest guide ever. Closes #123' -Be descriptive, it helps a ton. If you're working on the Github website you can do this in the commit summary at the bottom of the page you're writing in. Once you've committed your code it's time to push it to GitHub. +If you didn't fix a specific documentation issue, it's okay if you don't reference an issue number. + +Whether you reference an issue number or not, be descriptive; it helps a ton. If you're working on the Github website you can do this in the commit summary at the bottom of the page you're writing in. + +Once you've committed your code it's time to push it to GitHub. If you're working from Github, comitting the code automatically pushes it to your repository. If you're working from your local copy, you can do this with: git push origin master -## Getting your change into the main OpenPhoto branch +## Getting your change into the main Documentation branch You can send your documentation to us by submitting a pull request. This way it can get reviewed and merged with the rest of the documentation. If you forked a copy of OpenPhoto to your local machine, Github explains how to send a pull request with git. If you wrote all the documentation through the Github website, you can press the Pull Request button that appears on the page containing your copy of the OpenPhoto repository. ## Help! I'm stuck and I have questions From c728863e7693ecfc3adac3d1f6f6bcca4557a2f5 Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Sun, 21 Apr 2013 20:08:11 -0300 Subject: [PATCH 09/21] added a short version at top realized docs guide is really long. added tl;dr at top --- docs/contribute/documentation.markdown | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/contribute/documentation.markdown b/docs/contribute/documentation.markdown index a2f0eaa..fcc619f 100644 --- a/docs/contribute/documentation.markdown +++ b/docs/contribute/documentation.markdown @@ -4,13 +4,23 @@ We're working hard to make OpenPhoto the best photo software possible, and part We're always looking for writers to contribute to our documentation. If you can explain technical ideas clearly, we need you. +## The short version +Here's the short version of adding to our documentation. + +* Choose something to document. +* Fork our Documentation repository. +* Write. +* Send a pull request. + +The rest of this guide covers each step in detail. + ## Deciding what to contribute We currently have documentation for the API and setting up OpenPhoto on a variety of servers (including shared hosting services), along with FAQs for the hosted and self-hosted sites. You can contribute by adding to these guides or by adding your own guide--for example, how to install OpenPhoto on your webhost. Your contributions will help users of the present and future who have the same questions. All of this documentation is in the documentation repository under the docs folder. We have issues tagged documentation on the frontend repository as well, but every area of the project can benefit from better documentation. Choose something you know about that isn't well-documented here and start writing. ## Forking the Documentation repository -Before you start writing, you need to fork the documentation repository. You can fork the repository right from the main OpenPhoto repository page by clicking the "Fork" button. If you plan on writing your documentation directly in Github, that's all you need to do. If you want to work from a copy of the repository on your computer, Github explains how to clone a repository to your own machine. +Before you start writing, you need to fork the documentation repository. You can fork the repository right from the main OpenPhoto repository page by clicking the "Fork" button. If you plan on writing your documentation directly in Github, you can go ahead and start writing. If you want to work from a copy of the repository on your computer, Github explains how to clone a repository to your own machine. ## Writing the documentation We write our documentation in Github Standard Markdown and save the files as .Markdown files. If you're familiar with Markdown and Github, go ahead and fork [our documentation repository](https://github.com/photo/documentation), then write your contribution in a text editor of your choice. If you're not, you may want to take a look at Github's explanation of Markdown as well as the source of OpenPhoto's documentation pages on Github. Or if you're working from the Github site, press **m** on your keyboard when editing a page to see a cheatsheet. From db34d27814994c1a89daa84326f3a364310bef1c Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Sun, 21 Apr 2013 20:28:06 -0300 Subject: [PATCH 10/21] finally fixed that markdown formatting issue --- docs/contribute/frontend.markdown | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/contribute/frontend.markdown b/docs/contribute/frontend.markdown index df04d8b..2799450 100644 --- a/docs/contribute/frontend.markdown +++ b/docs/contribute/frontend.markdown @@ -35,24 +35,26 @@ We've added a _Beginner_ label to issues that don't touch some of the more sensi * Beginner + PHP issues ## Things to keep in mind while you code -Here's what your code should adhere to: +Here are some guidelines for your code: * Unit tests should pass (more on that in the next section) * Spacing matters: two spaces, no tabs * Commits should reference an issue number (more on that below) * Comment your code so future developers can tell what's going on * Curly braces go on their own line. For example: -````php - if(condition) - { - statement 1; - statement 2; - } - - // or - if(condition) - only statement; -```` + + + if(condition) + { + statement 1; + statement 2; + } + + // or + if(condition) + only statement; + + All in all, we recognize that everyone has a different style and level of experience, and we welcome all pull requests. ## Testing that your change didn't break anything From 6883bd0ba26ff5ba11eeae236b674fc1cb8c79de Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Sat, 4 May 2013 12:32:41 +0200 Subject: [PATCH 11/21] Corrected photo/delete API documentation - was incorrectly using action/delete --- docs/api/PostPhotoDelete.markdown | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/api/PostPhotoDelete.markdown b/docs/api/PostPhotoDelete.markdown index a4d3dfa..7a839c3 100644 --- a/docs/api/PostPhotoDelete.markdown +++ b/docs/api/PostPhotoDelete.markdown @@ -27,7 +27,7 @@ Use this API to delete an action. _Authentication: required_ - POST /action/:id/delete.json + POST /photo/:id/delete.json ### Parameters @@ -42,13 +42,13 @@ _None_ #### Command Line (using [openphoto-php][openphoto-php]) - ./openphoto -p -X POST -h current.openphoto.me -e /action/a/delete.json + ./openphoto -p -X POST -h current.openphoto.me -e /photo/a/delete.json #### PHP (using [openphoto-php][openphoto-php]) $client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret); - $response = $client->post("/action/a/delete.json"); + $response = $client->post("/photo/a/delete.json"); ---------------------------------------- From f85c035f10c6ec0f9ccef6fdff8b02a6b5940b6e Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Mon, 6 May 2013 14:59:13 -0300 Subject: [PATCH 12/21] added faqs on syncing to storage accounts --- docs/faq/Storage.markdown | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/faq/Storage.markdown b/docs/faq/Storage.markdown index 67547f1..058f161 100644 --- a/docs/faq/Storage.markdown +++ b/docs/faq/Storage.markdown @@ -13,6 +13,15 @@ Visit the storage migration page while ## How can I import my photos? You can import your photos through the Upload photos page when you're logged into Trovebox. At the bottom of the Upload photos page are links to import photos from Flickr, Facebook, and Instagram. Select the site(s) you'd like to import from and follow the instructions. +## Can I link my account to an existing S3 bucket? +Not yet. This is a known bug. + +## Does Trovebox sync photos already stored in my storage account? +Not yet, but this is a common request. + +## Can I upload my photos to Trovebox through Dropbox? +Not directly. This has been an experimental feature for awhile, and we hope to make it available to everyone in the future. + ## Can I keep uploading to another photo site and have that photo automatically show up in Trovebox? What about uploading to Trovebox and having a photo show up elsewhere? Not directly through Trovebox, but you can use sites like ifttt or Pixelpipe that will automatically upload a picture to Trovebox when you upload a picture somewhere else (or vice versa). From f40dabe0dcb87a8c6b55713a0dc552150baea375 Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Mon, 6 May 2013 15:37:00 -0300 Subject: [PATCH 13/21] added album cover faq --- docs/faq/PhotoManagement.markdown | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/faq/PhotoManagement.markdown b/docs/faq/PhotoManagement.markdown index ff2eeaf..51bb6b8 100644 --- a/docs/faq/PhotoManagement.markdown +++ b/docs/faq/PhotoManagement.markdown @@ -2,7 +2,7 @@ Photo Management ======================= ## How do I upload a photo? -Go to your Trovebox site (it'll look like yourusername.trovebox.com) and click Upload. Click Add Photos and add the photos you'd like to upload. You can also add attributes that'll apply to all the photos uploaded in that batch, such as a tag, an album, a privacy setting, or a license. +Go to your Trovebox site (it'll look like yourusername.trovebox.com) and click Upload. Click Add Photos and add the photos you'd like to upload. You can also add attributes that'll apply to all the photos uploaded in that batch, such as a tag, an album, a privacy setting, or a license. You can also upload a photo through our mobile apps for iPhone and Android. ## How large can my photo be? We support photo files of up to 30MB. @@ -42,5 +42,8 @@ While you're logged into your Trovebox site, visit Albums. Select Create Album, ## How do I add a photo to an album? You can add a photo to an album by hovering over the photo in your gallery and pinning it. Then select Batch Edit and Add to Album. Select the album you want to add the photo to and save. +## How do I set a cover photo for an album? +Visit an album from your album page and hover over the photo you want as your album cover. Click the album button to set that photo as the album cover. + ## How do I delete an album? Hover over the album you want to delete in the albums page and click the trash can. Confirm that you want to delete the album. The photos in that album are still safe. From faa69536f6d730cb0cde88629815a73656ba8771 Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Mon, 6 May 2013 16:10:33 -0300 Subject: [PATCH 14/21] rearranged and added some questions on pro account faq --- docs/faq/ProAccounts.markdown | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/faq/ProAccounts.markdown b/docs/faq/ProAccounts.markdown index bcb1145..699a44b 100644 --- a/docs/faq/ProAccounts.markdown +++ b/docs/faq/ProAccounts.markdown @@ -6,8 +6,8 @@ With a pro account, you get: * Unlimited photo uploads (Free users get 100 photo uploads/month) * Import from Flickr as well as Facebook and Instagram (Picasa and Smugmug coming soon) -* Switch storage options as many times as you wish -* Collaborators on your account +* Switch where you store your photos as many times as you wish +* Give multiple users access on your account * Top level domain support at yourdomain.com Check out our plans chart for the full breakdown. @@ -18,12 +18,12 @@ A Pro account costs $29.99 a year. ## How do I upgrade from a free account to a Pro account? Visit our upgrade page, enter your credit card info, and enjoy your Pro account! -## Do you store users' credit card info? -No. Your credit card info doesn't go through our servers at all, instead traveling securely from your server to our payment processor's. - -## How does unlimited space work with my storage service? +## Is unlimited really unlimited? What's the catch? We don't limit uploads for Pro users, but you may face limits from your storage provider. If we're your storage provider then everything is unlimited. +## Do you store users' credit card info? +No, we don't. Your credit card info doesn't go through our servers at all, instead traveling securely from your server to our payment processor's. + ## Do I have to renew manually every year? Nope. We'll alert you when your Pro account is going to renew. @@ -46,7 +46,12 @@ After we've replied and confirmed that we've set up your domain, you'll need to It'll take up to 24 hours for your changes to take effect. ## How do I add Twitter cards for my domain? -Twitter cards are added per domain, so you have to apply for them separately for your own domain. +Twitter cards are added per domain. You can apply for them separately for your own domain. + +## Can I use a custom domain for my Trovebox thumbnails? +Yes. If you're already using a subdomain on your Trovebox site, you should use a different one for your images so one subdomain doesn't map to two places. + +The easiest way to use a domain for your thumbnails is to store your photos in an Amazon S3 bucket named after your subdomain--that is, your.subdomain.com. Then add a CNAME record pointing your.subdomain.com to something.theirdomain.com.s3.amazonaws.com. Once you've done this email us at [mailto:support@trovebox.com](support@trovebox.com) and we can update the record on our side. ## My needs go far beyond what a Pro account provides. Can I get even more? We're working on a [https://trovebox.com/organizations](plan for organizations). Email us at [mailto:support@trovebox.com](support@trovebox.com) if you're interested. From 8a43267f456265628caf752847c3b8fa89804606 Mon Sep 17 00:00:00 2001 From: Sujin/Sushi Date: Fri, 10 May 2013 16:07:25 -0300 Subject: [PATCH 15/21] updated to include getting oauth and consumer keys --- docs/api/Authentication.markdown | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/api/Authentication.markdown b/docs/api/Authentication.markdown index fe8648b..95bd802 100644 --- a/docs/api/Authentication.markdown +++ b/docs/api/Authentication.markdown @@ -6,11 +6,13 @@ Authentication using OAuth 1.0a A full introduction to OAuth is beyond the scope of the OpenPhoto documentation. In all reality you probably don't need to understand all the ins and outs of OAuth; just grab one of our libraries and start building. -* openphoto/openphoto-php - Our PHP language binding. -* openphoto/openphoto-ruby - Our Ruby language binding. -* openphoto/openphoto-python - Our Python language binding. -* openphoto/openphoto-java - Our Java language binding. -* More coming soon, contact us if you'd like to write bindings in an unlisted language. +* Our PHP language binding +* Our Ruby language binding +* Our Python language binding +* Our Java language binding +* Our Javascript language binding +* Our Objective-C language binding +* More coming soon, contact us if you'd like to write bindings in an unlisted language. ### Obtaining a consumer key and secret @@ -18,10 +20,17 @@ Since OpenPhoto is distributed the flow to obtain a consumer key and secret diff Typically you would sign up for an application ID and be given a key and secret to be used with your app. OpenPhoto differs because the host you'll be sending requests to is arbitrary and there's no central application repository. +The easiest way to create a consumer key and secret is to browse to browse to your OpenPhoto site and go to `/v1/oauth/flow`. Follow the prompts until you get a success message. Then go to `/manage/apps` and you should see the following parameters: + +* Consumer Key +* Consumer Secret +* OAuth Token +* OAuth Secret + ### Resources on the web If you're interested in learning more about OAuth then the following links are a great place to start. -* http://oauth.net/documentation/getting-started/ -* http://hueniverse.com/oauth/guide/intro/ -* http://www.slideshare.net/eran/introduction-to-oauth-presentation +* http://oauth.net/documentation/getting-started/ +* http://hueniverse.com/oauth/guide/intro/ +* http://www.slideshare.net/eran/introduction-to-oauth-presentation From 31335d9cb6d6e7d35fa095a2e532f25428b03934 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Tue, 14 May 2013 19:22:24 +0200 Subject: [PATCH 16/21] Added Python example to PostPhotoDelete --- docs/api/PostPhotoDelete.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/api/PostPhotoDelete.markdown b/docs/api/PostPhotoDelete.markdown index 7a839c3..c928981 100644 --- a/docs/api/PostPhotoDelete.markdown +++ b/docs/api/PostPhotoDelete.markdown @@ -10,6 +10,7 @@ Delete Photo 1. [Examples][examples] * [Command line][example-cli] * [PHP][example-php] + * [Python][example-python] 1. [Response][response] * [Sample][sample] @@ -50,6 +51,13 @@ _None_ $client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret); $response = $client->post("/photo/a/delete.json"); + +#### Python (using [openphoto-python][openphoto-python]) + + client = openphoto.OpenPhoto() + photo = client.photos.list()[0] # Returns the first photo in the list + photo.delete() + ---------------------------------------- @@ -77,6 +85,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org [examples]: #examples [example-cli]: #example-cli [example-php]: #example-php +[example-python]: #example-python [response]: #response [sample]: #sample [openphoto-php]: https://github.com/photo/openphoto-php +[openphoto-python]: https://github.com/photo/openphoto-python From 957c053739bcbe43a3961425d51699b1f4f45be2 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Tue, 14 May 2013 19:36:03 +0200 Subject: [PATCH 17/21] Add Python example to PostPhotoUpdate --- docs/api/PostPhotoUpdate.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/docs/api/PostPhotoUpdate.markdown b/docs/api/PostPhotoUpdate.markdown index 66c9590..6c738bc 100644 --- a/docs/api/PostPhotoUpdate.markdown +++ b/docs/api/PostPhotoUpdate.markdown @@ -10,6 +10,7 @@ Update Photo 1. [Examples][examples] * [Command line][example-cli] * [PHP][example-php] + * [Python][example-python] 1. [Response][response] * [Sample][sample] @@ -61,6 +62,13 @@ _Authentication: required_ $client = new OpenPhotoOAuth($host, $consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret); $response = $client->post("/photo/a/update.json", array('title' => 'My Photo Title', 'tags' => 'sunnyvale,downtown')); + +#### Python (using [openphoto-python][openphoto-python]) + + client = openphoto.OpenPhoto() + photo = client.photos.list()[0] # Returns the first photo in the list + photo.update(title="My Photo Title", tags=["sunnyvale", "downtown"]) + ---------------------------------------- @@ -120,6 +128,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org [examples]: #examples [example-cli]: #example-cli [example-php]: #example-php +[example-python]: #example-python [response]: #response [sample]: #sample [openphoto-php]: https://github.com/photo/openphoto-php +[openphoto-python]: https://github.com/photo/openphoto-python From 18d93709b592ab73cbcd447ea02d34c58ea5edf9 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Tue, 14 May 2013 19:40:47 +0200 Subject: [PATCH 18/21] Added Python example to PostPhotoUpload --- docs/api/PostPhotoUpload.markdown | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/api/PostPhotoUpload.markdown b/docs/api/PostPhotoUpload.markdown index ae00786..ebf6de0 100644 --- a/docs/api/PostPhotoUpload.markdown +++ b/docs/api/PostPhotoUpload.markdown @@ -10,6 +10,7 @@ Upload Photo 1. [Examples][examples] * [Command line][example-cli] * [PHP][example-php] + * [Python][example-python] 1. [Response][response] * [Sample][sample] @@ -75,6 +76,16 @@ _Authentication: required_ $photoBase64Encoded = base64_encode(file_get_contents('/path/to/photo.jpg')); $response = $client->post("/photo/upload.json", array('photo' => $photoBase64Encoded, 'tags' => 'sunnyvale,downtown')); + +#### Python (using [openphoto-python][openphoto-python]) + + # multipart + client = openphoto.OpenPhoto() + client.photo.upload("path/to/photo.jpg", tags=["sunnyvale", "downtown"]) + + # base64 encoded + client.photo.upload_encoded("path/to/photo.jpg", tags=["sunnyvale", "downtown"]) + ---------------------------------------- @@ -134,6 +145,8 @@ The response is in a standard [response envelope](http://theopenphotoproject.org [examples]: #examples [example-cli]: #example-cli [example-php]: #example-php +[example-python]: #example-python [response]: #response [sample]: #sample [openphoto-php]: https://github.com/photo/openphoto-php +[openphoto-python]: https://github.com/photo/openphoto-python From c9e2337fbdba51b38d8133a9abe05af57c5069a6 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Tue, 14 May 2013 19:43:55 +0200 Subject: [PATCH 19/21] Use Python3 print syntax --- docs/api/GetPhoto.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/api/GetPhoto.markdown b/docs/api/GetPhoto.markdown index 23c8c77..6fa4d9e 100644 --- a/docs/api/GetPhoto.markdown +++ b/docs/api/GetPhoto.markdown @@ -59,8 +59,8 @@ _Authentication: optional_ client = openphoto.OpenPhoto() photo = client.photos.list()[0] # Returns the first photo from the list - photo.view(returnSizes="20x20") # Updates the photo object with the requested size - print photo.path20x20 + photo.view(returnSizes="20x20") + print(photo.path20x20) http://current.openphoto.me/photo/c7/create/baad9/20x20.jpg From 456f53cb6eca0755174e3cbce3304205cd66da20 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Tue, 14 May 2013 19:45:12 +0200 Subject: [PATCH 20/21] Use Python3-compatible print syntax --- docs/api/GetPhotoNextPrevious.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/GetPhotoNextPrevious.markdown b/docs/api/GetPhotoNextPrevious.markdown index d8a0fad..14e1e6d 100644 --- a/docs/api/GetPhotoNextPrevious.markdown +++ b/docs/api/GetPhotoNextPrevious.markdown @@ -59,7 +59,7 @@ _Authentication: optional_ client = openphoto.OpenPhoto() photo = client.photos.list()[1] # Returns the second photo in the list - print photo.next_previous() + print(photo.next_previous()) {'previous': [], 'next': []} From 2abef8e65b1352c6f95f076720c17dfffbb3b407 Mon Sep 17 00:00:00 2001 From: sneakypete81 Date: Tue, 14 May 2013 19:46:28 +0200 Subject: [PATCH 21/21] Use Python3-compatible print syntax --- docs/api/GetTags.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/api/GetTags.markdown b/docs/api/GetTags.markdown index e0950cd..5ad48e7 100644 --- a/docs/api/GetTags.markdown +++ b/docs/api/GetTags.markdown @@ -55,7 +55,7 @@ _None_ #### Python (using [openphoto-python][openphoto-python]) client = openphoto.OpenPhoto() - client.tags.list() + print(client.tags.list()) [, , ...]