Class: Flickr::FlickrClient
- Inherits:
-
Object
- Object
- Flickr::FlickrClient
- Defined in:
- lib/flickrrb.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#build_response(j) ⇒ Object
“hello”.capitalize Build class to call.
- #group(data) ⇒ Object
- #groups(data) ⇒ Object
- #handle_error(xml) ⇒ Object
-
#initialize(http = nil, debug = false) ⇒ FlickrClient
constructor
A new instance of FlickrClient.
- #person(data) ⇒ Object
- #photo(data) ⇒ Object
-
#photos(data) ⇒ Object
“pages”=>1, “perpage”=>100, “total”=>“15”, “photo”=>[{“id”=>“1848463798”, “owner”=>“12656878@N06”, “secret”=>“d9fcbdedb5”, “server”=>“2103”, “farm”=>3, “title”=>“IMG_5628_29_30”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1250311066”, “owner”=>“12656878@N06”, “secret”=>“71461d1f9a”, “server”=>“2042”, “farm”=>3, “title”=>“IMG_5547_8_9”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1250311040”, “owner”=>“12656878@N06”, “secret”=>“13dc200ffe”, “server”=>“2007”, “farm”=>3, “title”=>“IMG_5571_2_3”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1250311001”, “owner”=>“12656878@N06”, “secret”=>“2d8fde31d1”, “server”=>“2267”, “farm”=>3, “title”=>“Criss Cross Castle”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1206397646”, “owner”=>“12656878@N06”, “secret”=>“69697c85d3”, “server”=>“3282”, “farm”=>4, “title”=>“Alexander Library”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1206353910”, “owner”=>“12656878@N06”, “secret”=>“e97dfa334f”, “server”=>“2122”, “farm”=>3, “title”=>“IMG_0716_7_8”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095628”, “owner”=>“12656878@N06”, “secret”=>“81b8bdcc39”, “server”=>“2099”, “farm”=>3, “title”=>“IMG_0695_6_7”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095610”, “owner”=>“12656878@N06”, “secret”=>“19fb55ffdd”, “server”=>“2156”, “farm”=>3, “title”=>“IMG_0643_4_5”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095592”, “owner”=>“12656878@N06”, “secret”=>“f87fe0ba85”, “server”=>“2252”, “farm”=>3, “title”=>“IMG_0506_7_8”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095509”, “owner”=>“12656878@N06”, “secret”=>“ae39c7e214”, “server”=>“2099”, “farm”=>3, “title”=>“IMG_0494_5_6”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095483”, “owner”=>“12656878@N06”, “secret”=>“ca858d0646”, “server”=>“2019”, “farm”=>3, “title”=>“IMG_0491_2_3”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095461”, “owner”=>“12656878@N06”, “secret”=>“cec90f64ba”, “server”=>“2402”, “farm”=>3, “title”=>“IMG_5631_2_3”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194217745”, “owner”=>“12656878@N06”, “secret”=>“a4d0774b17”, “server”=>“2022”, “farm”=>3, “title”=>“IMG_5574_5_6”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194128771”, “owner”=>“12656878@N06”, “secret”=>“5089075c7a”, “server”=>“2008”, “farm”=>3, “title”=>“IMG_5598_599_600”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194128720”, “owner”=>“12656878@N06”, “secret”=>“e0f8cfeab2”, “server”=>“2140”, “farm”=>3, “title”=>“IMG_5646_7_8”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194128674”]}.
- #request(command) ⇒ Object
-
#sizes(data) ⇒ Object
“canprint”=>0, “candownload”=>1, “size”=>[{“label”=>“Square”, “width”=>75, “height”=>75, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/sq/”, “media”=>“photo”, “width”=>“100”, “height”=>“75”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/t/”, “media”=>“photo”, “width”=>“240”, “height”=>“180”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/s/”, “media”=>“photo”, “width”=>“500”, “height”=>“375”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/m/”, “media”=>“photo”, 640”, “width”=>“640”, “height”=>480, “source”=>“farm3.static.flickr.com/2402/1848466274_cec90f64ba_z.jpg?zz=1”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/z/”, “media”=>“photo”, “width”=>“1280”, “height”=>“960”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/o/”, “media”=>“photo”]}. - #stat(data) ⇒ Object
- #user(data) ⇒ Object
Constructor Details
#initialize(http = nil, debug = false) ⇒ FlickrClient
Returns a new instance of FlickrClient.
181 182 183 184 185 186 187 188 189 190 |
# File 'lib/flickrrb.rb', line 181 def initialize http = nil, debug = false flickr_url = URI.parse "http://api.flickr.com/" @flickr_client = if http.nil? Net::HTTP.new flickr_url.host, flickr_url.port else http end @debug = debug end |
Instance Method Details
#build_response(j) ⇒ Object
“hello”.capitalize Build class to call
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 |
# File 'lib/flickrrb.rb', line 198 def build_response j p j if @debug m = j.match(/^jsonFlickrApi\((.+)\)$/) fail APIException, "Invalid response from Flickr" if m.nil? data = JSON.parse m[1] resp = nil if !m.nil? && data['stat'] == 'ok' data.keys.each do |k| next if k == 'stat' resp = self.send(k, data) end else # FIXME Fail in send fail APIException, "#{data['code']}: #{data['message']}" end resp end |
#group(data) ⇒ Object
236 237 238 |
# File 'lib/flickrrb.rb', line 236 def group data Group.new data end |
#groups(data) ⇒ Object
230 231 232 233 234 |
# File 'lib/flickrrb.rb', line 230 def groups data data['groups']['group'].collect do |g| group(g) end end |
#handle_error(xml) ⇒ Object
220 221 222 223 224 225 |
# File 'lib/flickrrb.rb', line 220 def handle_error xml # This is a bit ugly! code = xml.elements['rsp'].elements['err'].attributes['code'] = xml.elements['rsp'].elements['err'].attributes['msg'] fail APIException, "#{code}: #{}" end |
#person(data) ⇒ Object
277 278 279 |
# File 'lib/flickrrb.rb', line 277 def person data Person.new data['person'] end |
#photo(data) ⇒ Object
254 255 256 257 |
# File 'lib/flickrrb.rb', line 254 def photo data data = data['photo'] unless data['photo'].nil? Photo.new data end |
#photos(data) ⇒ Object
“pages”=>1, “perpage”=>100, “total”=>“15”, “photo”=>[{“id”=>“1848463798”, “owner”=>“12656878@N06”, “secret”=>“d9fcbdedb5”, “server”=>“2103”, “farm”=>3, “title”=>“IMG_5628_29_30”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1250311066”, “owner”=>“12656878@N06”, “secret”=>“71461d1f9a”, “server”=>“2042”, “farm”=>3, “title”=>“IMG_5547_8_9”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1250311040”, “owner”=>“12656878@N06”, “secret”=>“13dc200ffe”, “server”=>“2007”, “farm”=>3, “title”=>“IMG_5571_2_3”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1250311001”, “owner”=>“12656878@N06”, “secret”=>“2d8fde31d1”, “server”=>“2267”, “farm”=>3, “title”=>“Criss Cross Castle”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1206397646”, “owner”=>“12656878@N06”, “secret”=>“69697c85d3”, “server”=>“3282”, “farm”=>4, “title”=>“Alexander Library”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1206353910”, “owner”=>“12656878@N06”, “secret”=>“e97dfa334f”, “server”=>“2122”, “farm”=>3, “title”=>“IMG_0716_7_8”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095628”, “owner”=>“12656878@N06”, “secret”=>“81b8bdcc39”, “server”=>“2099”, “farm”=>3, “title”=>“IMG_0695_6_7”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095610”, “owner”=>“12656878@N06”, “secret”=>“19fb55ffdd”, “server”=>“2156”, “farm”=>3, “title”=>“IMG_0643_4_5”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095592”, “owner”=>“12656878@N06”, “secret”=>“f87fe0ba85”, “server”=>“2252”, “farm”=>3, “title”=>“IMG_0506_7_8”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095509”, “owner”=>“12656878@N06”, “secret”=>“ae39c7e214”, “server”=>“2099”, “farm”=>3, “title”=>“IMG_0494_5_6”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095483”, “owner”=>“12656878@N06”, “secret”=>“ca858d0646”, “server”=>“2019”, “farm”=>3, “title”=>“IMG_0491_2_3”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1199095461”, “owner”=>“12656878@N06”, “secret”=>“cec90f64ba”, “server”=>“2402”, “farm”=>3, “title”=>“IMG_5631_2_3”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194217745”, “owner”=>“12656878@N06”, “secret”=>“a4d0774b17”, “server”=>“2022”, “farm”=>3, “title”=>“IMG_5574_5_6”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194128771”, “owner”=>“12656878@N06”, “secret”=>“5089075c7a”, “server”=>“2008”, “farm”=>3, “title”=>“IMG_5598_599_600”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194128720”, “owner”=>“12656878@N06”, “secret”=>“e0f8cfeab2”, “server”=>“2140”, “farm”=>3, “title”=>“IMG_5646_7_8”, “ispublic”=>1, “isfriend”=>0, “isfamily”=>0, “ownername”=>“Henry Maddocks”, “dateadded”=>“1194128674”]}
241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/flickrrb.rb', line 241 def photos data pages = data['photos']['pages'] total = data['photos']['total'] photo_list = data['photos']['photo'] photos = photo_list.collect do |p| self.photo p end return photos, pages.to_i, total.to_i end |
#request(command) ⇒ Object
192 193 194 195 |
# File 'lib/flickrrb.rb', line 192 def request command p "/services/rest/#{command}&format=json" if @debug build_response(@flickr_client.get("/services/rest/#{command}&format=json").body) end |
#sizes(data) ⇒ Object
“canprint”=>0, “candownload”=>1, “size”=>[{“label”=>“Square”, “width”=>75, “height”=>75, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/sq/”, “media”=>“photo”, “width”=>“100”, “height”=>“75”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/t/”, “media”=>“photo”, “width”=>“240”, “height”=>“180”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/s/”, “media”=>“photo”, “width”=>“500”, “height”=>“375”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/m/”, “media”=>“photo”, 640”, “width”=>“640”, “height”=>480, “source”=>“farm3.static.flickr.com/2402/1848466274_cec90f64ba_z.jpg?zz=1”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/z/”, “media”=>“photo”, “width”=>“1280”, “height”=>“960”, “source”=>“
”, “url”=>“www.flickr.com/photos/acute-distress/1848466274/sizes/o/”, “media”=>“photo”]}
260 261 262 263 264 265 266 267 268 269 270 271 |
# File 'lib/flickrrb.rb', line 260 def sizes data sizes = [] data['sizes']['size'].each do |p| s = Size.new(p) sizes << s (class << sizes; self;end).class_eval do define_method(s.label.downcase.gsub(" ", "_").to_sym) { s } end end sizes end |
#stat(data) ⇒ Object
227 228 |
# File 'lib/flickrrb.rb', line 227 def stat data end |