Module: FlickRaw
- Defined in:
- lib/flickraw.rb
Defined Under Namespace
Classes: FailedResponse, Flickr, Request, Response, ResponseList
Constant Summary
collapse
- VERSION =
'0.8.1'
- FLICKR_HOST =
'api.flickr.com'.freeze
- REST_PATH =
'/services/rest/?'.freeze
- UPLOAD_PATH =
'/services/upload/'.freeze
- REPLACE_PATH =
'/services/replace/'.freeze
- AUTH_PATH =
'http://flickr.com/services/auth/?'.freeze
- PHOTO_SOURCE_URL =
'http://farm%s.static.flickr.com/%s/%s_%s%s.%s'.freeze
- URL_PROFILE =
'http://www.flickr.com/people/'.freeze
- URL_PHOTOSTREAM =
'http://www.flickr.com/photos/'.freeze
- URL_SHORT =
"http://flic.kr/p/".freeze
- BASE58_ALPHABET =
"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ".freeze
Class Method Summary
collapse
Class Method Details
.api_key ⇒ Object
251
|
# File 'lib/flickraw.rb', line 251
def api_key; FlickRawOptions['api_key'] end
|
.api_key=(key) ⇒ Object
252
|
# File 'lib/flickraw.rb', line 252
def api_key=(key); FlickRawOptions['api_key'] = key end
|
.api_sig(hsh) ⇒ Object
Returns the signature of hsh. This is meant to be passed in the api_sig parameter.
268
269
270
|
# File 'lib/flickraw.rb', line 268
def api_sig(hsh)
Digest::MD5.hexdigest(FlickRaw.shared_secret + hsh.sort{|a, b| a[0].to_s <=> b[0].to_s }.flatten.join)
end
|
.auth_url(args = {}) ⇒ Object
Returns the flickr auth URL.
259
260
261
262
263
264
265
|
# File 'lib/flickraw.rb', line 259
def auth_url(args={})
full_args = {:api_key => api_key, :perms => 'read'}
args.each {|k, v| full_args[k.to_sym] = v }
full_args[:api_sig] = api_sig(full_args) if shared_secret
AUTH_PATH + full_args.collect { |a, v| "#{a}=#{v}" }.join('&')
end
|
.base58(id) ⇒ Object
273
274
275
276
277
278
279
280
281
282
|
# File 'lib/flickraw.rb', line 273
def base58(id)
id = id.to_i
alphabet = BASE58_ALPHABET.split(//)
base = alphabet.length
begin
id, m = id.divmod(base)
r = alphabet[m] + (r || '')
end while id > 0
r
end
|
.shared_secret ⇒ Object
255
|
# File 'lib/flickraw.rb', line 255
def shared_secret; FlickRawOptions['shared_secret'] end
|
.shared_secret=(key) ⇒ Object
256
|
# File 'lib/flickraw.rb', line 256
def shared_secret=(key); FlickRawOptions['shared_secret'] = key end
|
.url(r) ⇒ Object
284
|
# File 'lib/flickraw.rb', line 284
def url(r); PHOTO_SOURCE_URL % [r.farm, r.server, r.id, r.secret, "", "jpg"] end
|
.url_b(r) ⇒ Object
288
|
# File 'lib/flickraw.rb', line 288
def url_b(r); PHOTO_SOURCE_URL % [r.farm, r.server, r.id, r.secret, "_b", "jpg"] end
|
.url_m(r) ⇒ Object
285
|
# File 'lib/flickraw.rb', line 285
def url_m(r); PHOTO_SOURCE_URL % [r.farm, r.server, r.id, r.secret, "_m", "jpg"] end
|
.url_o(r) ⇒ Object
289
|
# File 'lib/flickraw.rb', line 289
def url_o(r); PHOTO_SOURCE_URL % [r.farm, r.server, r.id, r.originalsecret, "_o", r.originalformat] end
|
.url_photopage(r) ⇒ Object
291
|
# File 'lib/flickraw.rb', line 291
def url_photopage(r); url_photostream(r) + r.id end
|
.url_photoset(r) ⇒ Object
293
|
# File 'lib/flickraw.rb', line 293
def url_photoset(r); url_photosets(r) + r.id end
|
.url_photosets(r) ⇒ Object
292
|
# File 'lib/flickraw.rb', line 292
def url_photosets(r); url_photostream(r) + "sets/" end
|
.url_photostream(r) ⇒ Object
295
296
297
298
299
300
301
302
303
304
|
# File 'lib/flickraw.rb', line 295
def url_photostream(r)
URL_PHOTOSTREAM +
if r.respond_to?(:pathalias) and r.pathalias
r.pathalias
elsif r.owner.respond_to?(:nsid)
r.owner.nsid
else
r.owner
end + "/"
end
|
.url_profile(r) ⇒ Object
290
|
# File 'lib/flickraw.rb', line 290
def url_profile(r); URL_PROFILE + (r.owner.respond_to?(:nsid) ? r.owner.nsid : r.owner) + "/" end
|
.url_s(r) ⇒ Object
286
|
# File 'lib/flickraw.rb', line 286
def url_s(r); PHOTO_SOURCE_URL % [r.farm, r.server, r.id, r.secret, "_s", "jpg"] end
|
.url_short(r) ⇒ Object
294
|
# File 'lib/flickraw.rb', line 294
def url_short(r); URL_SHORT + base58(r.id) end
|
.url_t(r) ⇒ Object
287
|
# File 'lib/flickraw.rb', line 287
def url_t(r); PHOTO_SOURCE_URL % [r.farm, r.server, r.id, r.secret, "_t", "jpg"] end
|