jzting / flickr_original_sinatra

a simple sinatra app to retrieve original size images using the flickr api

flickr_original_sinatra / flickr_sinatra.rb
32b5d0c9 » Jason Ting 2009-05-05 first commit 1 require 'rubygems'
2 require 'sinatra'
3 require 'flickr'
4
5 # Setup the Flickr stuff
6 @@flickr = Flickr.new("flickr.cache", "f2949bc8f2e7d566279784478033e72a", "74b4e685176f27be")
7
8 not_found do
efbf3e19 » Jason Ting 2009-05-05 flickr api now returns 'b' ... 9 erb :index
32b5d0c9 » Jason Ting 2009-05-05 first commit 10 end
11
12 get "/" do
13 erb :index
14 end
15
16 get "/view/:id" do |id|
17 begin
18 photos = @@flickr.photos.getSizes(params[:id])
19 if photos.sizes[:Original]
20 original = photos.sizes[:Original].source
21 redirect original
22 elsif photos.sizes[:Large]
23 photos.sizes[:Large]
efbf3e19 » Jason Ting 2009-05-05 flickr api now returns 'b' ... 24 large = photos.sizes[:Large].source
32b5d0c9 » Jason Ting 2009-05-05 first commit 25 redirect large
26 else
27 erb :error
28 end
29 rescue XMLRPC::FaultException
30 erb :error
31 end
32 end
33
34 get "/download/:id" do |id|
35 begin
36 photos = @@flickr.photos.getSizes(params[:id])
37 if photos.sizes[:Original]
38 original = photos.sizes[:Original].source.gsub(/_o/, '_o_d')
39 redirect original
40 elsif photos.sizes[:Large]
41 photos.sizes[:Large]
efbf3e19 » Jason Ting 2009-05-05 flickr api now returns 'b' ... 42 large = photos.sizes[:Large].source.gsub(/_b/, '_b_d')
32b5d0c9 » Jason Ting 2009-05-05 first commit 43 redirect large
44 else
45 erb :error
46 end
47 rescue XMLRPC::FaultException
48 erb :error
49 end
50 end
51
52 use_in_file_templates!
53
54 __END__
55
56 @@ index
57 <html>
58 <body>
59 <h1>nothing to see here!</h1>
60 </body>
61 </html>
62
63 @@ error
64 <html>
65 <body>
66 <h1>sorry, this image is unavailable.</h1>
67 </body>
68 </html>